enable/disable javascript execution by JS?

Ask for help about NoScript, no registration needed to post
jugglefish

enable/disable javascript execution by JS?

Post by jugglefish »

Hello,

I am using selenium to test my application. I would like to disable javascript execution from within my testcase.

In general I think this little js would solve my problem:

function setJavascriptPref(bool) {
prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
prefs.setBoolPref("javascript.enabled", bool);
}

However it seem noscript somehow overrides this setting. Is there anything I can do to activate/deactivate javascript execution with noscript enabled by means of javascript? 'whitelist' seems to be an internal setting that can't be reached via preference-service.

Thx and Greets,
peter
Mozilla/5.0 (X11; U; Linux x86_64; de-DE; rv:1.9.1.8) Gecko/20100225 Iceweasel/3.5.8 (like Firefox/3.5.8) FirePHP/1.0
User avatar
Giorgio Maone
Site Admin
Posts: 9524
Joined: Wed Mar 18, 2009 11:22 pm
Location: Palermo - Italy
Contact:

Re: enable/disable javascript execution by JS?

Post by Giorgio Maone »

Change your code into:

Code: Select all

function setJavascriptEnabled(bool) {
   const Cc = Components.classes;
    if ("@maone.net/noscript-service;1" in Cc) {
       var ns = Cc["@maone.net/noscript-service;1"].getService().wrappedJSObject;
       ns.jsEnabled = bool;
    } else {
      var prefs = Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
      prefs.setBoolPref("javascript.enabled", bool);
    }
}
Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2
Post Reply