亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Chrome擴展彈出不起作用,單擊事件無法處理

Chrome擴展彈出不起作用,單擊事件無法處理

Chrome擴展彈出不起作用,單擊事件無法處理我已經創建了一個JavaScript變量,當我單擊該按鈕時,它應該會增加1,但不會發生。這是manifest.json.{   "name":"Facebook",   "version":"1.0",   "description":"My Facebook Profile",   "manifest_version":2,   "browser_action":{     "default_icon":"google-plus-red-128.png",     "default_popup":"hello.html"   }}以下是html頁面的代碼<!DOCTYPE html><html><head><script>var a=0;function count(){   a++;   document.getElementById("demo").innerHTML=a;   return a;}</script></head><body><p id="demo">=a</p><button type="button" onclick="count()">Count</button></body></html>我希望擴展顯示a的值,并在每次單擊擴展名或按鈕時將其遞增一次。
查看完整描述

2 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

您的代碼無法工作,因為它違反了默認設置。內容安全策略..我制作了一個一分鐘的屏幕來說明出了什么問題:


首先,我演示了如何調試問題。右鍵單擊彈出按鈕,然后單擊“檢查彈出”..這樣做之后,您將看到以下錯誤消息:

拒絕執行內聯腳本,因為它違反了以下內容安全策略指令:“script-src‘Self’chrom-擴展名:”。

這說明您的代碼無法工作,因為它違反了默認的CSP:內聯JavaScript不會被執行..要解決這個問題,您必須從HTML文件中刪除所有內聯JavaScript,并將其放入單獨的JS文件中。

結果如下:

hello.html(彈出頁)、

<!DOCTYPE html><html><head></head><body><p id="demo">=a</p><button type="button" id="do-count">Count</button><script src="popup.js">
</script></body></html>

popup.js

var a=0;function count() {
    a++;
    document.getElementById('demo').textContent = a;}document.getElementById('do-count').onclick = count;

請注意,我已經替換了innerHTML帶著textContent..學會使用textContent而不是innerHTML當您打算更改文本時。在這個簡單的例子中,它并不重要,但在更復雜的應用程序中,它可能會以XSS的形式成為一個安全問題。


查看完整回答
反對 回復 2019-06-20
  • 2 回答
  • 0 關注
  • 1390 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號