Greasemonkey для внедрения рекламы Adfly - PullRequest
0 голосов
/ 16 августа 2011

Есть ли способ преобразовать это в код 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 ссылки в браузере во время серфинга.

Пожалуйста, помогите! Спасибо:)

Ответы [ 2 ]

1 голос
/ 18 августа 2011

Вам нужно будет ввести JS на страницу. Избегайте unsafeWindow, если можете .

Вот полный перевод этого сценария 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 голос
/ 16 августа 2011

Да, в теории. Вам просто нужно написать это в голову. Они будут оцениваться за пределами области действия 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, не читайте их.

...