Chrome扩展程序中的document.write

时间:2012-01-14 00:17:03

标签: javascript dom google-chrome-extension window.location document.write

我是新手,所以请耐心等待。我正在尝试编写一个执行以下操作的chrome扩展名:

  1. 检测www.website.com/anypage.html。如果检测到此网站,请执行以下操作。
  2. 请勿加载网址。
  3. 相反,请写一个空白文档,其中包含指向www.website.com/anypage.html?ie=UTF8
  4. 的超链接

    脚本设置为在文档开始时运行(在清单中)。

    这是我的代码:

    检测网址:

    var regExp = /website.com/gi;
    var match = 0;
    testString = window.location.href.toString();
    if(regExp.test(testString) { 
    match = 1;
    

    使用带有UTF8编码标记的URL链接写入空白文档:

    document.write("<a href=" + window.location.href + "?ie=UTF8>Title of Link</a>");
    

    这不能按预期工作,只显示一个空白页面。有人有什么想法吗?

    谢谢!


    编辑:这是完整的代码:

    checklink(); // If there is a match, then checklink will return a 1. If it's already     tagged, it will return a 5.
    var matchLink = null;
    if (checklink() === 1) {
    matchLink = window.location.href.toString();
    
    if (checklink() != 1) {
    matchLink = null;
    
    function checklink() { //checks to see if the current URL matches website.com
    var regExp = /website.com/gi,
    testString = window.location.href.toString(),
    match = 0,
    tagged = 0;
    
    if (regExp.test(testString)) { //if there is a match, returns 1
    match = 1;
    
    
    var regExp2 = /UTF8/gi;
    if (regExp2.test(testString)) { //if UTF8 is found, then it returns 5
    tagged = 5;
    
    return(match + tagged);
    
    
    function tagUTF() {
    if (matchLink) {
    var newLink = matchLink + "?ie=UTF8";
    document.write("<a href=\"" + newLink + "\">Link</a>");
    
    
    if (matchLink) {
    tagUTF();
    }
    

1 个答案:

答案 0 :(得分:1)

chrome内容脚本可以访问DOM,因此您可以使用dom操作方法或innerHTML替换当前页面的body元素的内容,其中包含锚标记的新节点:

document.body.innerHTML = "<a href=" + window.location.href + "?ie=UTF8>Title of Link</a>";

请注意,这假设正在为您的Chrome扩展程序正确添加正在执行DOM操作的JavaScript作为“内容脚本”:

http://code.google.com/chrome/extensions/content_scripts.html

编辑:

以下是我用来让它在本地工作的代码:

的manifest.json

{
  "name": "Test",
  "version": "1.0",
  "description": "Test",
  "permissions": [
    "<all_urls>"
  ],
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content-script.js"],
      "run_at": "document_end"
    }
  ]
}

内容的script.js

document.body.innerHTML = "<a href='test'>test</a>";