Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Greasemonkey注入Adfly广告_Javascript_Browser_Greasemonkey_Userscripts - Fatal编程技术网

Javascript Greasemonkey注入Adfly广告

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_

有没有办法把它转换成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_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,因此这肯定是我方法的一个优点。