![](/img/trans.png)
[英]localStorage (Need help doesn't function properly) - Javascript Chrome Extension
[英]Need help calling anonymous function/plugin through chrome extension
我正在開發一個 chrome 擴展來自動化網站的某些部分。 我需要觸發鏈接的點擊事件。 它通過像這樣的匿名函數有一個事件處理程序......
(function($, dialog) { function toggle(event) { } function addEventListeners() { form.on('click', '.toggle', toggle); } function init() { } $(init); }(jQuery, window.silk.classes.dialog));
$('#elm').click()、trigger()、triggerHandler()等傳統方法不起作用。 我想我需要在匿名插件中提高 toggle() 函數。
如果有人可以幫助我弄清楚如何通過控制台觸發處理程序,我可以弄清楚如何通過擴展程序觸發它。
感謝您的投入。
如果沒有顯式調用functionName()
則不會調用javascript中的function functionName(){}
塊中包裝的任何內容。
通常,對於annon init函數,我會這樣做:
(function(params){
toggle();
addEventListeners(); //should change this it's bad to name functions after language defined ones.
init();
})();
function toggle(params){
}
function addEventListeners(){
}
function init(){
}
您目前在上面的示例中編寫代碼的方式, addEventListener
的代碼將永遠不會運行,因為它從未被調用(據我所發布的內容)。
如果您想保持它的狀態,則由於范圍的原因,您還必須從您的annon函數內部調用這些函數:
(function($, dialog) {
function toggle(event) {
}
function addEventListeners() {
form.on('click', '.toggle', toggle);
}
function init() {
}
toggle();
addEventListeners();
init();
}(jQuery, window.silk.classes.dialog));
//your functions are now out of scope here, however any eventListeners you attach to the dom will stay defined until that dom element is destroyed.
我設法弄清楚了。 最終,我試圖在匿名函數中觸發處理程序。 為此,使用以下代碼行。
var btn = document.getElementById('toggle');
btn.addEventListener('click', function() {
this.removeEventListener('click', arguments.callee, false);
}, false);
var event = document.createEvent('Event');
event.initEvent('click', true, true);
btn.dispatchEvent(event);
我以為你至少有 2 個匿名函數,這個片段中的一個,還有 jquery.js 文件因為 manifest3 匿名函數是不允許的,所以你必須修改它們,只需設置一個名稱並使用它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.