有没有办法将其转换为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>
这是adf.ly的网站输入脚本,当添加到网站时会显示adf.ly广告。
我想创建一个脚本,在浏览时会在浏览器中加载adf.ly链接。
请帮忙! 谢谢:)
答案 0 :(得分:1)
是的,从理论上讲。你只需要把这些写到头上。如果您在页面方向上加载它们,它们将在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中的值,不要从中读取它们。
答案 1 :(得分:1)
您需要将JS注入页面。 Avoid unsafeWindow
if you can
这是该脚本的完整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);
}