jQuery无法在Firefox插件上完全运行

时间:2010-07-17 20:05:08

标签: jquery firefox-addon

我通过这样做包含了jQuery:

<?xml version="1.0"?>
<!DOCTYPE window SYSTEM "chrome://orkutmanager/locale/browser.dtd">
    <overlay id="omcore" 
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <script type="application/x-javascript" src="../../jquery-1.4.2.js"/>
    <script type="text/javascript">jQuery.noConflict();</script>

    <script type="application/x-javascript" src="../../OM.js"/>

</overlay>

这是我的chrome.manifest

content orkutmanager    chrome/content/
overlay chrome://browser/content/browser.xul chrome://orkutmanager/content/XUL/Browser/Core.xul

skin orkutmanager classic skin/

locale orkutmanager en-US locale/en-US/

然后我尝试使用

gBrowser.addEventListener('DOMContentLoaded',
    function (e)
    {
        var contentWindow = e.originalTarget.defaultView;
        var contentDocument = contentWindow.document;

        var $ = jQuery;

        var x = $("a", contentDocument).attr("onclick"); //
        // Error: uncaught exception: unknown (can't convert to string)

    }, false);

虽然

$("a", contentDocument).get(0).getAttribute("onclick");

正常工作。

我是否必须以不同的方式包含jQuery?我怎样才能让它像往常一样工作? 是否有另一种jQuery方法来获取属性的值?

正常情况下,example here

1 个答案:

答案 0 :(得分:1)

您正在使用onclick功能访问attr媒体资源。

docs对此一无所知,但可能是attr()强制将其返回值转换为字符串吗?它看起来像。

如果直接访问onclick怎么办?你在做什么呢?