2012-11-24 69 views
0

我正在寫一個Chrome擴展,其中我希望按鈕出現在彈出頁面中,作爲某些用戶操作的結果(說他通過彈出頁面登錄到我的網站後)。 Documentation指出,聯JavaScript將不被執行,並執行它建議的方法是使用在Chrome擴展彈出式菜單中的按鈕

document.addEventListener('DOMContentLoaded', function() { 
document.querySelector('#button1').addEventListener('click', clickHandler); 
}); 

時的「按鈕」是popup.html標籤。

但是,這裏是一件事:我不希望當按照上述方式加載頁面時出現按鈕。當我嘗試使用$("#some_div").append(<button id="button1">...<button>)添加按鈕然後調用document.addEventListener時,似乎document.querySelector沒有找到附加按鈕(實際上它返回null),因爲它不是原始popup.html的一部分。

到目前爲止,我認爲唯一的解決方案是將按鈕添加到popup.html中作爲隱藏,並在需要時將其設置爲可見。

任何其他的想法(或者,希望我誤會在一起)將不勝感激。

回答

0

您可以嘗試使用var newButton = document.createElement('button')創建按鈕,並使用appendChild而不是append。那麼你可以寫newButton.addEventListener('click', clickHandler)

+0

感謝您的回答。我試過了下面這些:\t \t \t \t var newButton = document.createElement('button'); \t \t \t \t(「#some_div」)。appendChild(newButton);但我得到控制檯日誌上的錯誤信息:「some_div沒有方法'appendChild' – Subway

+0

好吧,我想出來了,我不得不使用DOM方法'document.getElementById(」popup「)。appendChild() ',而不是'(「popup」)。appendChild()'。謝謝。 – Subway

相關問題