0

你好,我是試圖建立一個Chrome擴展我在這個新的,所以請耐心等待着我,和對不起我的英語不好就這是我做了什麼:Chrome擴展連接

的manifest.json

{ 
    "name": "Linker ", 
    "manifest_version": 2, 
    "version": "0.1", 
    "description": "LInker", 
    "browser_action": { 
    "default_icon": "icon.png", 

    }, 

    "content_scripts": [ 
    { 
     "matches": ["http://example.com"], 

     "js": ["myscript.js"] 
    } 
    ], 

    "permissions": [ 
     "tabs", "http://*/*", "https://*/*" 
    ] 
} 

myscript.js

function clickHandler(e) { 
    chrome.tabs.update({url: "https://example.com"}); 
    window.close(); 
} 
document.addEventListener('DOMContentLoaded', function() { 
    document.getElementById('bt_click').addEventListener('click', clickHandler); 
}); 

我的想法是,當該插件在某個網站上運行,使用contenent腳本,一旦按下按鈕,這個特定的網站上開設其他網站在同一標籤或新標籤上。

問題是,當我這樣做時,發生nothinng現在我做錯了什麼? 我希望插件一旦啓用就會在特定網站正常運行時始終運行。 我不明白請任何幫助將是偉大的!

+0

到目前爲止,您做了哪些調試?查看關於如何或爲什麼不使用oncontentloaded的官方文檔。 s.o上有很多現有的答案。已經回答了。 –

+0

我已經看到了控制檯,也沒有錯誤,我也看到了官方文檔,但沒有關於這個問題,你可以給我任何關於s.o的鏈接。這將是非常有益的,我仍然不明白爲什麼它不工作,我做錯了什麼?任何想法會是什麼問題?謝謝 – Coders

+0

重複,但答案不是up-voted或接受,所以不能用它作爲一個dup目標,但:[Chrome內容腳本不工作](http://stackoverflow.com/q/43233115) – Makyen

回答

0

如果myscript.js應該爲內容腳本來運行,那麼就沒有必要使用這樣的:

chrome.tabs.update({url: "https://example.com"}); 

要在當前標籤頁中打開某些URL,只需要執行:

// someUrl is your url 
location.href = someUrl 

所以修改腳本以下列方式:

function clickHandler(e) { 
    location.href = 'http://example.com'; 
} 
document.addEventListener('DOMContentLoaded', function() { 
    document.getElementById('bt_click').addEventListener('click', clickHandler); 
}); 

FYI:這個代碼是在後臺腳本中使用:

chrome.tabs.update