Javascript Greasemonkey注入Adfly广告
有没有办法把它转换成Greasemonkey代码Javascript Greasemonkey注入Adfly广告,javascript,browser,greasemonkey,userscripts,Javascript,Browser,Greasemonkey,Userscripts,有没有办法把它转换成Greasemonkey代码 <script> var adfly_id = 517450; var adfly_advert = 'banner'; var frequency_cap = 5; var frequency_delay = 5; var init_delay = 3; </script> <script src="http://adf.ly/js/entry.js"></script> var adfly_
<script>
var adfly_id = 517450;
var adfly_advert = 'banner';
var frequency_cap = 5;
var frequency_delay = 5;
var init_delay = 3;
</script>
<script src="http://adf.ly/js/entry.js"></script>
var adfly_id=517450;
var adfly_广告=‘横幅’;
无功频率_上限=5;
无功频率_延迟=5;
var init_delay=3;
这是一个adf.ly的网站入口脚本,当添加到网站时会显示adf.ly广告
我想制作一个脚本,在浏览时在浏览器中加载adf.ly链接
请帮忙!
谢谢:)理论上是的。你只需要把这些写在头上。如果您在页面方向上加载它们,它们将在greasemonkey范围之外进行计算。您甚至可以在创建脚本标记后执行
document.body.appendChild
。所以
var sc = document.createElement('script');
sc.src = "http://adf.ly/js/entry.js"
document.body.appendChild(sc);
对于另一个,像这样做unsafeWindow.varname
赋值可能更容易
unsafeWindow.adfly_id = 517450;
unsafeWindow.adfly_advert = 'banner';
unsafeWindow.frequency_cap = 5;
unsafeWindow.frequency_delay = 5;
unsafeWindow.init_delay = 3;
尽管您不想在脚本中使用这些值,因为这些值可以由网站本身更改。使用它们可以让网站更好地控制用户的浏览器,并让他们做一些本来无法做的事情(例如,通过XSS ajax访问其他网站的信息)。只向unsafeWindow中的值写入,不从中读取。您需要将JS注入页面 下面是该脚本的完整Greasemonkey翻译:
// ==UserScript==
// @name _adFly why?
// @include http://YOUR_SITE/YOUR_PATH/*
// ==/UserScript==
function myCode () {
//--- Set global variables for adFly.
window.adfly_id = 517450;
window.adfly_advert = 'banner';
window.frequency_cap = 5;
window.frequency_delay = 5;
window.init_delay = 3;
}
addJS_Node (null, null, myCode);
addJS_Node (null, "http://adf.ly/js/entry.js");
function addJS_Node (text, s_URL, funcToRun) {
var D = document;
var scriptNode = D.createElement ('script');
scriptNode.type = "text/javascript";
if (text) scriptNode.textContent = text;
if (s_URL) scriptNode.src = s_URL;
if (funcToRun) scriptNode.textContent = '(' + funcToRun.toString() + ')()';
var targ = document.getElementsByTagName('head')[0] || D.body || D.documentElement;
targ.appendChild (scriptNode);
}
我同意避免这样做,但由于他只是写属性,而不是从中读取,我认为这是一件好事。然而,我应该链接到这篇文章,这样至少可以概述风险+1是的,实际上,危险被夸大了(但仍然是真实的)。在这种情况下,因为无论如何都需要脚本注入,所以即使是很小的风险也没有必要。另外,这种方法无需额外修改即可移植到Chrome。编辑您的答案以显示如何使用
unsafeWindow
(加上警告),我将进行投票。我添加了它,尽管我认为您的解决方案是一个很好的解决方案,您是对的,它将移植到Chrome,因此这肯定是我方法的一个优点。