У меня есть код, который работает для всех браузеров, кроме IE (удивление, удивление).
Хотя это сложная штука.У нас был специальный тег Coldfusion, который генерирует рекламный код в теле документа.Но по соображениям скорости загрузки страницы мы решили попытаться загрузить код, возвращенный из пользовательского тега, с помощью jQuery после того, как документ был готов.
Мы перепробовали почти все возможные методы, каждый из которых имел свои проблемы.В конце концов остановились на вызове пользовательского тега в скрытом элементе div в нижней части страницы, затем с помощью jQuery, чтобы получить определенную часть кода, которая нам нужна, и загрузке его в окончательное место отдыха дальше вверх по странице.
У нас всего пять объявлений.Один из них возвращает код, с которым IE не может работать.Остальные все работают нормально.
Четыре объявления OK возвращают строку гиперссылки из пользовательского тега (например, следующим образом), с которой легко работать и которая работает во всех браузерах:
<a href="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=brd&FlightID=2997227&Page=&PluID=0&Pos=9088"
target="_blank">
<img src="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=bsr&FlightID=2997227&Page=&PluID=0&Pos=9088"
border="0"
width="300"
height="250">
</a>
Мы используем следующий код для загрузки в temp div (divx), а затем извлекаем и перезагружаем в конечную позицию (left2):
$('#divx').html("").load('/remoteAd.cfm?type=left2&referrer=/index.cfm',
function(g){
var xx = $('#divx').html());
$('#left2').html(xx);
});
ОДНАКО хлопотный код возвращает огромный блок кода, который нарушает работу JavaScript, когдамы попытались присвоить его переменной (я даже не могу загрузить его здесь без прерывания. Вы можете просмотреть его в исходном коде этой страницы ), поэтому мы решили извлечь его, используя .text ():
var xx = $('#divx').text();
вместо
var xx = $('#divx').html();
Извлекает следующую строку js STRING (с разрывом строки) во ВСЕХ БРАУЗЕРАХ, КРОМЕ IE:
ajaxinclude("/remoteAd.cfm?type=right1&referrer=/index.cfm");
function ebStdBanner1_DoFSCommand(command,args){
try{
command = command.replace(/FSCommand:/ig,"");
if((command.toLowerCase() == "ebinteraction") ||
(command.toLowerCase()=="ebclickthrough"))
gEbStdBanners[1].handleInteraction(args);
else if(command.toLowerCase()=="ebversiontrackingimpression")
gEbStdBanners[1].ebversiontrackingimpression(args);
} catch(e) {}
}
function ebIsFlashExtInterfaceExist(){
return true;
}
<a href="http://bs.sys.com/adServer.bs?cn=brd&FlightID=2997227&Page=&PluID=0&Pos=9088"
target="_blank">
<img src="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=bsr&FlightID=2997227&Page=&PluID=0&Pos=9088"
border=0
width=300
height=250>
</a>
Этопростой способ извлечь блок гиперссылки из строки, благодаря предложениям от других по stackoverflow.
ОДНАКО, в IE9 я получаю пустой результат для alert($('#divx').text());
Может кто-нибудь сказать мне, ПОЧЕМУ ?.Это разрушает мой день.
Вы можете просмотреть код, который загружается в временный блок, просмотрев исходный код этой страницы .Все, что я хочу сделать, это получить доступ к нему как к тексту () и изолировать блок <a>...</a>
от него перед загрузкой в свой последний div.