自动运行Javascript函数

时间:2011-09-13 20:46:10

标签: javascript html url

我找到了一个颠倒网页颜色的javascript函数:

String javascript = "javascript: (function (){var newSS, styles = '* { background-color: black ! important; color: green !important; }a:link, a:link * { color: green !important; text-style: underline; }a:visited, a:visited * { color: #7f0000 !important; }a:hover, a:hover * { color: red !important; }';var elemHead = document.getElementsByTagName(\"head\")[0];var elemCSS = document.getElementById(\"darkenCSS\");if (elemCSS){elemHead.removeChild(elemCSS);}else{newSS = document.createElement('link');newSS.rel = 'stylesheet';newSS.href = 'data:text/css,' + escape(styles);newSS.id = \"darkenCSS\";elemHead.appendChild(newSS);}})();";

是否可以自动运行? 我的意思是加载www.google.co.uk并应用此javascript函数.4

希望有道理,我对javascript知之甚少。

澄清:

我想知道这个javascript函数是否可以附加到URL。像http://www.google.com/?Javascript_blah_blah_blah

这样的东西

进一步澄清:

我正在Android中制作基本的网络浏览器。我想在网页上反转颜色。 我做了一个按钮,在页面上执行这个javascript。这有效。但每次都需要用户按下按钮。

我想做一个永久倒置的开关。

所以我需要浏览到url输入并让它自动反转颜色。

希望这有帮助

4 个答案:

答案 0 :(得分:3)

是的,将没有引号的字符串粘贴到地址栏中。确保psuedo-protocol javascript:位于开头


rlemon

您首先需要修改脚本以取消转义转义的引号,然后在地址栏中添加新书签。编辑书签并将位置更改为

javascript:%20(function%20(){var%20newSS,%20styles%20=%20'*%20{%20background-color:%20black%20!%20important;%20color:%20green%20!important;%20}a:link,%20a:link%20*%20{%20color:%20green%20!important;%20text-style:%20underline;%20}a:visited,%20a:visited%20*%20{%20color:%20#7f0000%20!important;%20}a:hover,%20a:hover%20*%20{%20color:%20red%20!important;%20}';var%20elemHead%20=%20document.getElementsByTagName("head")[0];var%20elemCSS%20=%20document.getElementById("darkenCSS");if%20(elemCSS){elemHead.removeChild(elemCSS);}else{newSS%20=%20document.createElement('link');newSS.rel%20=%20'stylesheet';newSS.href%20=%20'data:text/css,'%20+%20escape(styles);newSS.id%20=%20"darkenCSS";elemHead.appendChild(newSS);}})();

你有它!

答案 1 :(得分:1)

如果你使用的Firefox最简单的方法(据说这个附加组件适用于Chrome和Opera,但我从未尝试过)是安装Greasemonkey并为域创建用户脚本/您想要的网址 - www.google.co.uk/*www.google.com/*等。

然而,使用Stylish扩展程序可以更好地完成此类操作,但您只能使用CSS,不能使用JavaScript。但是在你提出的内容中,下面的CSS片段应该像魅力一样:

* { background-color: black ! important; color: green !important; }a:link, a:link * { color: green !important; text-style: underline; }a:visited, a:visited * { color: #7f0000 !important; }a:hover, a:hover * { color: red !important; }

网上有很多userscriptsuserstyles

答案 2 :(得分:1)

不,你不能“只运行”附加到网址的javascript。这是安全漏洞(将是)。但你可以使用

  • bookmarklets(以javascript:开头的'URL'),
  • 浏览器插件(Chrome / FF / Safari - 都可以这样做)或
  • 您可以查找可以运行 userscripts 的插件。这就像Greasemonkey。

您也可以尝试使用Fluid(特定于站点的浏览器,仅限MacOS X)......我想您会有所了解。

BTW 如果您想/需要编写bookmarlet,您可以在特定网站上运行并想要开始 - 请查看此文章:http://coding.smashingmagazine.com/2010/05/23/make-your-own-bookmarklets-with-jquery/

答案 3 :(得分:0)

您可以使用Chrome + http://defunkt.io/dotjs/来实现这一目标。这正是此扩展的目的:在特定网站上自动运行一些JS脚本。

现在只是OSX,但我想还有一些其他扩展也在这样做。