我一直致力于Chrome扩展!现在我的扩展程序从用户接收输入,然后单击按钮重定向到页面并将输入的数据填充到特定的文本字段。 我能够重定向到页面,但是当我尝试使用id名称获取元素时,它会出现null错误!因为javascript在页面正确加载之前运行。我试过但找不到办法!
在我的内容脚本中,我有这个功能:
function redirect(data)
{
location.replace("xyz.html");
window.onload = function()
{
alert();
var textField = document.getElementById("textField");
textField.value = data ;
}
}
答案 0 :(得分:0)
当您致电location.replace
时,您正在加载新页面,您当前的文档将被关闭,这意味着您注册到此文档的内容脚本将无效。
假设您当前位于第A页并希望重定向到第B页,一种解决方法是从A获取数据,将其保存到chrome.storage或background page,然后重定向到B ,从chrome.storage
或persistent 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");
}