调用在(xul)浏览器元素中定义/链接的javascript函数

调用在(xul)浏览器元素中定义/链接的javascript函数,javascript,browser,xul,xulrunner,Javascript,Browser,Xul,Xulrunner,我正在开发一个包含浏览器元素的XUL应用程序。此浏览器元素属于type=“content”,因此无法从浏览器中使用JavaScript访问XUL元素。这不仅可以,而且必须是这样 我现在的问题是,我无法从XUL元素访问browser元素中定义的函数 有什么方法可以调用在browser元素中定义或链接的函数吗?如您所述,不能直接访问内容是一种安全功能。如果您只想调用函数,但对返回值不感兴趣,那么最简单和安全的方法是将javascript:URL加载到该浏览器中: myBrowser.contentW

我正在开发一个包含浏览器元素的XUL应用程序。此浏览器元素属于
type=“content”
,因此无法从浏览器中使用JavaScript访问XUL元素。这不仅可以,而且必须是这样

我现在的问题是,我无法从XUL元素访问browser元素中定义的函数


有什么方法可以调用在browser元素中定义或链接的函数吗?

如您所述,不能直接访问内容是一种安全功能。如果您只想调用函数,但对返回值不感兴趣,那么最简单和安全的方法是将
javascript:
URL加载到该浏览器中:

myBrowser.contentWindow.location.href=“javascript:void-someFunction()”;
如果您需要取回数据,那么安全地执行此操作是复杂的(任何涉及
wrappedJSObject
的操作本质上都是不安全的)。可能最好使用。您可以将内容脚本加载到浏览器中(未经测试,仅举例说明这一点):

contentScript.js
将如下所示:

var result = someFunction();
sendAsyncMessage("result", result);

请注意,
contentScript.js
具有内容特权,这意味着利用它不会给网页带来任何好处。它发送的数据将被转换成JSON并返回到另一端,任何“恶意”的东西都无法传递。

Darauf muss man erstmal kommen。超级Funktioniert,vielen Dank。
var result = someFunction();
sendAsyncMessage("result", result);