从Chrome扩展程序填写外部网页上的表单

时间:2015-10-04 21:51:55

标签: javascript google-chrome-extension

我正在尝试在用户点击我创建的Chrome扩展程序时,根据当前页面的值在外部网页上填写表单。

所以我要做的是打开页面并首先使用popup.js文件传递消息。

chrome.tabs.create({url: "http://localhost:49177/ProDATA/Add.aspx"},function(tab){  
    chrome.tabs.sendRequest(tab.id, {FirstName: FirstName}, function(response) {
    console.log(response.farewell); })
    });

然后在add.aspx页面上,该页面将位于用户所在页面的不同域中,我尝试这样做。

//add listener for chrome extension
    var FirstName = '';
    function LoadEventListener()
    {
        alert('test');

        chrome.runtime.onMessage.addListener(function (request, sender, response) {                
            FirstName = request.FirstName;
            alert(FirstName);
        });
    }

我从body onload事件加载“LoadEventListener”。并且警报“test”显示,因此它确实正在加载,但是我没有看到“FirstName”警报。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

  • 特权Chrome。* API在现代Chrome网页上默认不起作用。

    应该通过清单中的"externally_connectable"明确允许网址(请参阅该链接以获取代码示例)。

    或者使用tabs.executeScriptinject DOM访问代码而不是tabs.sendRequest

  • 该文档说自Chrome 33以来已弃用tabs.sendRequest。请改用chrome.tabs.sendMessage