主文档中的网站包含一个使用以下语句的 JavaScript 文件:
<script src="/somescript.js" type="text/javascript"></script>
网站上还有一个链接,用于执行包含的文件中定义的 JavaScript 函数。它看起来像:
<a href="javascript:functionname('parm1', 'parm2');" <img src="http://.../button.png" id="pushme" alt="" height="80" width="200"> </a>
如何在 Firefox 侧边栏的主文档上下文中执行 functionname('parm1', 'parm2');
?
到目前为止我尝试过的是:
mainWindow[functionname]
获取指向js函数的指针,但它总是返回null,即使页面已完全加载。 (发生这种情况是因为 javascript 源代码包含在单独的文件中吗?)
contentDocument.getElementById("parentdiv").getElementsByTagName('a')[0].click();
调用该方法,但 click 似乎不可用。 (有没有办法让链接可以点击()?)
或者还有其他方法来执行js函数吗?
感谢您的支持!
最佳答案
您无法获取该窗口的句柄,因为它不是当前窗口的实例变量。您可以使用 window.open()
并将结果句柄存储在变量中来获取对窗口的引用。
What i've tried so far is: mainWindow[functionname] to obtain a pointer to the js function, but it always returns null, even if the page was loaded completely. (Does this happen because the javascript source is included from a seperate file?
无论文件从哪里包含,函数都会在执行其定义时在浏览器的脑海中形成。
要使链接“可点击”,您只需使用窗口句柄调用它即可:
var myWindow = window.open("foo.html");
<a href="javascript:myWindow.functionname('parm1', 'parm2');">
当然,我们不应该使用内联 javascript,但作为一个简单的例子是可以的。 :)
关于javascript - 如何从 Firefox 侧边栏调用 javascript 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4356900/