Chrome扩展程序帮助 - 将打开页面的网址添加到manifest.json中default_popup的html的过程是什么?

时间:2014-02-25 10:03:19

标签: javascript html ajax json google-chrome-extension

我有以下清单:

{
    "name":"Fix the Web extension",
    "version":"0.2",
    "manifest_version":2,
    "description":"Web accessibility Poorly designed websites can exclude some disabled people. If disabled people report problems and volunteers push for improvements, Fix the Web crowdsources change.",
    "browser_action": {
        "default_icon": "FTW-favicon-128.png",
        "default_title": "Fix the Web | Disabled people: Report an issue now!",
        "default_popup": "extension.html"
        },
    "icons":{
        "128": "FTW-favicon-128.png"
    }
}

打开这个html页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<HTML>
<HEAD>
<TITLE>Disabled people: Report an issue now! | Fix the Web</TITLE>
</HEAD>
<body>
<iframe src="http://www.fixtheweb.net/frame/report" height="350" width="300"></iframe>
</body>
</HTML>

但我想要的是在iframe链接中添加?url = http://www.mysite.com/something,以便它变为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
   "http://www.w3.org/TR/html4/frameset.dtd">
<HTML>
<HEAD>
<TITLE>Disabled people: Report an issue now! | Fix the Web</TITLE>
</HEAD>
<body>
<iframe src="http://www.fixtheweb.net/frame/report?url=http://www.mysite.com/something" height="350" width="300"></iframe>
</body>
</HTML>

我见过其他相关的帖子,但我感觉有点愚蠢 - 我认为它与ajax或javascript有关....帮助非常感谢,这是一个很好的理由(fixtheweb.net是一个网络辅助功能慈善机构)所以附带奖励业力点:))

2 个答案:

答案 0 :(得分:0)

extension.js

chrome.tabs.query({active:true,currentWindow:true},function(tabArray){
    document.getElementById("eltId").src
        = "http://www.fixtheweb.net/frame/report?url="+tabArray[0].url;
});

并将"permissions": ["activeTab"]添加到您的清单中。然后,要从extension.html加载它,您需要:

<body>
 <iframe id="eltId" src="http://www.fixtheweb.net/frame/report" height="350" width="300"></iframe>
 <script type="text/javascript" src="extension.js"></script>
</body>

我真的很惊讶它并没有最终消耗更多。

答案 1 :(得分:0)

哇,几乎...... 我将extension.html替换为源页面,并将所有网址设置为完整网址...现在它可以正常工作并且速度更快但是extension.js不再预先填充打开页面的网址。

我尝试的是更改js,使其如下所示,因为“report-form”是表单的id(当然可以在http://www.fixtheweb.net/frame/report找到其来源)

chrome.tabs.query({active:true,currentWindow:true},function(tabArray){
    document.getElementById("report-form").src
        = "http://www.fixtheweb.net/frame/report?url="+tabArray[0].url;
});

我们需要人们(记者)填写他们的电子邮件地址,因为志愿者如果有疑问就可以回复记者,或者想告诉他们有关修复的信息,或者记者是否想要了解问题所在至... 无论你是否登录,我都希望扩展能够正常运行。可悲的是,这种方式即使你登录电子邮件地址也不再预先填写......但如果我不得不为了更快的表单加载而妥协,我认为这是值得的,因为记者不会总是登录。