我正在开发这个迷你镀铬扩展,我在其中插入一个按钮(链接)到页面中并点击它(以编程方式)将带来模态。当我从控制台单击它时,即使使用相同的jQuery命令也可以。但是当我从脚本文件本身执行它时,它只是重新加载当前页面,因为链接显然是页面的当前URL,因为模式应该在该页面顶部打开。手动单击鼠标也可以。但我不知道为什么单击文件本身的链接只是重新加载页面而不打开模态。
chrome.runtime.onMessage.addListener(function(res,sender,sender){
var fileurl = chrome.extension.getURL("modal.js")
var html = "<a href="#" data-modal="#modal2" class="modal__trigger">Modal </a>....the rest of html here';
$('#rightCol').prepend(html);
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = fileurl;
$("head").append(script);
$('.modal__trigger')[0].click(); //this click reload the current page without opening up the modal
});
答案 0 :(得分:0)
注入的脚本需要一些时间来解析和执行。
在点击
之前添加超时setTimeout(function() { $('.modal__trigger')[0].click() }, 1000);
或使用script.onload事件
script.onload = function() { $('.modal__trigger')[0].click() };
$("head").append(script);