如何在Chrome扩展程序中加载页面后触发Javascript?

时间:2016-04-26 05:35:49

标签: javascript google-chrome-extension

我一直致力于Chrome扩展!现在我的扩展程序从用户接收输入,然后单击按钮重定向到页面并将输入的数据填充到特定的文本字段。 我能够重定向到页面,但是当我尝试使用id名称获取元素时,它会出现null错误!因为javascript在页面正确加载之前运行。我试过但找不到办法!

在我的内容脚本中,我有这个功能:

function redirect(data)
{
location.replace("xyz.html");
        window.onload = function()
        {
            alert();
            var textField = document.getElementById("textField");
            textField.value = data ;
        } 
}

1 个答案:

答案 0 :(得分:0)

当您致电location.replace时,您正在加载新页面,您当前的文档将被关闭,这意味着您注册到此文档的内容脚本将无效。

假设您当前位于第A页并希望重定向到第B页,一种解决方法是从A获取数据,将其保存到chrome.storagebackground page,然后重定向到B ,从chrome.storagepersistent page获取数据。

示例代码如下所示:

chrome.storage.local.get("data", function(results) {
    var data = results.data;
    var textField = document.getElementById("textField");
    if (textField) {
        textField.value = data;
    } else {
        chrome.storage.local.set({"data": "your data here"});
        redirect("your data here");
    }
});

function redirect(data) {
    location.replace("xyz.html");
}