2

Chrome拡張機能のpopup.htmlを変更したい。内部に外部URLを含むiFrameをロードします。iFrameが読み込まれたら、popup.htmlのdivタグを変更したいと思います

popup.html

<head>
    <script type = "text/javascript" src = "popup.js"></script>
</head>

<body>
    <form name = "getPage" action = "http://website.com/" method = "post" target = "post_stuff">
        <input type = "hidden" name = "hdnrequesttype" value = "1" />
        <input type = "hidden" name = "txtmemberid" id = "txtmemberid" value = "11012333" />
        <input type = "hidden" name = "txtmemberpwd" id = "txtmemberpwd" value = "" />
        <input type = "hidden" name = "sites" value = "0" />
        <input type = "hidden" name = "firsttime" value = "Y" />
    </form>
    <iframe name = "post_stuff" height = "600" width = "600" onload = "frame_loaded()">
    </iframe>
    <div id = "putText">
    </div>
</body>

popup.js

window.onload = function() {
    document.forms["getPage"].submit();
}

function frame_loaded() {
    document.getElementById("putText").innerHTML = "LOADED";
    console.log("LOADED");
}

これは機能しませんでした。コンテンツスクリプトを使ってみましたが、うまくいきませんでした。私のコンテンツスクリプトmodify.jsのコンテンツ:-

modify.js

document.getElementById("putText").innerHTML = "LOADED";

これが私のマニフェストの関連セクションです:-

"content_scripts" : [ {
                            "matches": ["<all_urls>"],
                            "js": ["modify.js"]
                       }
                    ]

誰かがこれを手伝ってくれることを願っています。

4

1 に答える 1

3

を使用していると思いますmanifest_version: 2。その場合addEventListenerは、インラインonloadハンドラーの代わりに次を使用する必要があります。

window.onload = function() {
    //attach a load listener to the iframe
    document.querySelector("iframe").addEventListener("load", frame_loaded);
    document.forms["getPage"].submit();
}
于 2012-08-23T18:12:49.507 に答える