Код не изменился с 2015 года. С декабря перестало работать расширение Chrome.Я не могу понять, почему.
Манифест имеет:
"web_accessible_resources": [ "script.js" ]
Сценарий содержимого имеет:
var readDiv = $("div[id*=fls_readheader]");
$("table[id*='objects_tabs_detail']").filter(function(index){ return $("thead:first-of-type > tr:first-of-type > th:first-of-type > div:first-of-type", this).html() === "Field Name";}).find(readDiv).append("<br /><div style='margin-top:3px;'><input type='checkbox' name='Check All Read' onclick='clickAllRead(this);' /></div>");
var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
s.onload = function() {
this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);
Когда я нажимаю на флажок, я получаю сообщение:
Uncaught ReferenceError: clickAllRead не определен в HTMLInputElement.onclick
Любые идеи, почему это сломалось и как это исправить?
script.js содержит:
function clickAllRead(cb) {
if(cb.checked) {
var cbs = $("input:checkbox:enabled[id*=fls_read_ck]");
$("table[id*='objects_tabs_detail']").filter(function(index){ return $("thead:first-of-type > tr:first-of-type > th:first-of-type > div:first-of-type", this).html() === "Field Name";}).find(cbs).prop('checked', true);
} else {
var cbs = $("input:checkbox:enabled");
$("table[id*='objects_tabs_detail']").filter(function(index){ return $("thead:first-of-type > tr:first-of-type > th:first-of-type > div:first-of-type", this).html() === "Field Name";}).find(cbs).prop('checked', false);
}
}
Если я добавлю script.js в «content_scripts» манифеста расширения, расширение будет работать как положено.Я просто хочу знать, почему это сломалось.