1

主文档中的网站包含一个使用以下语句的 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>

如何functionname('parm1', 'parm2');在 Firefox 侧边栏中的主文档上下文中执行?
到目前为止我尝试的是: mainWindow[functionname]获取指向 js 函数的指针,但它总是返回 null,即使页面已完全加载。(发生这种情况是因为 javascript 源代码包含在单独的文件中吗?) contentDocument.getElementById("parentdiv").getElementsByTagName('a')[0].click();调用该方法,但单击似乎不可用。(有没有办法让链接可以点击()?)

还是有其他方法可以执行 js 函数?
谢谢你的支持!

4

1 回答 1

1

您无法获得窗口句柄,因为它不是当前窗口的实例变量。window.open()您可以通过使用生成的句柄并将其存储在变量中来获取对窗口的引用。

到目前为止,我尝试的是: mainWindow[functionname] 获取指向 js 函数的指针,但它始终返回 null,即使页面已完全加载也是如此。(发生这种情况是因为 javascript 源代码包含在单独的文件中吗?

不管文件是从哪里包含的,当它的定义被执行时,这个函数就会出现在浏览器的脑海中。

要使链接“可点击”,您可以使用窗口句柄调用它:

var myWindow = window.open("foo.html");

<a href="javascript:myWindow.functionname('parm1', 'parm2');"> 

当然,我们不应该使用内联 javascript,但它可以作为一个简单的示例。:)

于 2010-12-05T01:50:52.727 回答