簡體   English   中英

Google Chrome擴展程序 - 如何打開/關閉JavaScript?

[英]Google Chrome extension - how to turn JavaScript on/off?

是否可以使用自制的Google Chrome擴展程序打開/關閉JavaScript

例如,在Opera瀏覽器中,使用小部件, 用戶自定義按鈕等可以實現這一點,但我在Chrome中找不到任何解決方案(我的第一個來源是官方Google Chrome擴展程序的文檔) )。

一個奇怪的方面是我需要JavaScript來運行擴展本身...如果我能夠通過擴展關閉JavaScript,我可以在我的擴展中使用JavaScript嗎?


編輯:

已經可以通過chrome.contentSettings.javascript來做到這一點
請參閱此示例 ,其中顯示了如何使用它( Quick JavaScript Switcher擴展,其中mlb 鏈接在此處 )。

現在可以使用ContentSettings API,
還有一個名為Quick Javascript Switcher的擴展程序可以即時打開/關閉javascript: https//github.com/maximelebreton/quick-javascript-switcher

Chrome網上應用店中的QJShttps//chrome.google.com/webstore/detail/geddoclleiomckbhadiaipdggiiccfje

請享用 !

seo: 禁用javascript chrome擴展

目前似乎擴展無法禁用JavaScript支持。 在Chromium跟蹤網站上甚至還有一項功能請求 我們需要耐心等待Google決定支持。

目前,我們無法使用您的Chrome擴展程序訪問chrome://設置/內容數據

在我的代碼,當標簽“鉻://設置/內容”創建警報(0) 工作,始終得到了如下錯誤:

tabs.executeScript期間出錯:無法訪問網址“chrome:// settings / content”的內容。 擴展清單必須請求訪問此主機的權限。

但是當創建標簽“http://www.google.com.hk”時,alert(0)可以正常工作。

所以我認為我們無法訪問chrome:// settings / * data:

popup.html:

<html>
<head>
<script>
  function openSetting() {
    chrome.tabs.create({"url":"chrome://settings/content", "selected":true});
  }

  function openGoogle() {
    chrome.tabs.create({"url":"http://www.google.com.hk", "selected":true});
  }

  //chrome.browserAction.onClicked.addListener(enableDisableImage);

    chrome.tabs.onCreated.addListener(function(tab) {
        chrome.tabs.executeScript(null, {code:"alert(0)"});
    });
</script>
</head>
<body>
<input type="button" onClick="openSetting()" value="Switch"/>
<input type="button" onClick="openGoogle()" value="Switch"/>
</body>
</html>

manifest.json的:

{
  "name": "ImageSwitcher",
  "version": "1.0",
  "description": "Disable/Enable loading image",
  "browser_action": {
    "default_icon": "icon.png",
        "default_popup": "popup.html"
  },
  "permissions": [
    "tabs",
        "*://*/*"
  ]
}

現在可以使用chrome的發布版本(從chrome 16開始)來從擴展中關閉和打開java-script。

這是一個擴展,它就是這樣做的:

https://chrome.google.com/webstore/detail/geddoclleiomckbhadiaipdggiiccfje

這是阻止chrome擴展運行javascript的唯一方法。 粘貼此代碼:

function exit() {
    'use strict';
    window.addEventListener('error', function (e) {e.preventDefault();e.stopPropagation();}, false);

    let handlers = [
        'copy', 'cut', 'paste',
        'beforeunload', 'blur', 'change', 'click', 'contextmenu', 'dblclick', 'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'resize', 'scroll', 'selectstart',
        'DOMNodeInserted', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument', 'DOMNodeInsertedIntoDocument', 'DOMAttrModified', 'DOMCharacterDataModified', 'DOMElementNameChanged', 'DOMAttributeNameChanged', 'DOMActivate', 'DOMFocusIn', 'DOMFocusOut', 'online', 'offline', 'input',
        'abort', 'close', 'drop', 'dragstart', 'drag', 'load', 'paint', 'reset', 'select', 'submit', 'unload'
    ];

    function eventHandler(e) {
        e.stopPropagation();
        // e.preventDefault(); // Stop for the form controls, etc., too?
    }
    for(let i=0; i < handlers.length; i++) {
        window.addEventListener(handlers[i], eventHandler, true);
    }

    if(window.stop) {
        window.stop();
    }

    Array.prototype.forEach.call(document.querySelectorAll("*"), el => {
        if( document.defaultView.getComputedStyle(el)["-webkit-user-select"] == "none" ) {
            //el.style.webkitUserSelect = "auto";
            el.style.setProperty("-webkit-user-select", "auto", "important");
        }
    });

    throw '';
}
exit();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM