Использование jquery в фоновом контексте кроссрайдера
У меня есть следующий фрагмент кода в background.js.
appAPI.contextMenu.add("key2", "Add", function (data) {
var key=0;
alert('hi'+data.selectedText);
var tableRow = $("td").filter(function() {
return $(this).text() == data.selectedText;
}).closest("tr");
alert("1");
alert(tableRow+'sds');
if(tableRow===null)
{
alert("Please select proper text so that course can be selected, this would title or coursenumber");
return;
}
var title=tableRow.find('td').eq(7).text();
var days=tableRow.find('td').eq(8).text();
var time=tableRow.find('td').eq(9).text();
timeSplit=time.split('-');
var startTime,endTime;
startTime=getTime(timeSplit[0]);
endTime=getTime(timeSplit[1]);
var loc=tableRow.find('td').eq(10).text();
var instructor=tableRow.find('td').eq(12).text();
key=key+1;
courseData=[{'id':key,'title':title,'days':days,'startTime':startTime,'endTime':endTime,'loc':loc,'instructor':instructor}];
var dbData=appAPI.db.get('course_Data');
if(dbData===null)
{
dbData=courseData;
}
else
{
dbData.push({'id':key,'title':title,'days':days,'startTime':startTime,'endTime':endTime,'loc':loc,'instructor':instructor});
}
alert(dbData[key-1]['title']);
appAPI.db.set('course_Data',dbData);
}, ["all"]);
Тот же код, когда я храню в extension.js, прекрасно работает с методом appAPI selectedText, но в фоновом режиме, похоже, не работает jquery. Я говорю это потому, что не могу достичь оператора alert('1') с помощью кода jquery перед тем, как отфильтровать отбросы таблиц на основе выбранного значения.
2 ответа
В настоящее время фоновая область Crossrider не поддерживает jQuery, поэтому ваш код не работает в background.js.
Вы можете использовать обычные объекты DOM (например, окно, документ) для достижения того же результата в фоновом режиме.
Ну, если ты не видишь alert('1')
сценарий должен либо преждевременно завершиться, либо зацикливаться бесконечно. Я не думаю, что эти вызовы jQuery могут зацикливаться неопределенно data
объект не содержит selectedText
поле. Это возможно?