gpt4 book ai didi

javascript - Jquery,在 IE 中从 div 获取 .text()

转载 作者:行者123 更新时间:2023-11-28 10:14:35 24 4
gpt4 key购买 nike

我的代码适用于除 IE 之外的所有浏览器(惊喜,惊喜)。

不过,这是一件棘手的事情。我们有一个 Coldfusion 自定义标签,它可以在文档正文中生成广告代码。但是,出于页面加载速度的原因,我们决定在文档准备好后尝试使用 jQuery 加载从自定义标记返回的代码。

我们几乎尝试了所有可能的方法,但每种方法都有各自的麻烦。最后决定最初在页面底部的隐藏 div 中调用自定义标记,然后使用 jQuery 获取我们需要的代码的特定部分,并将其加载到页面上方的最终放置位置。

我们总共有五个广告。其中之一返回 IE 无法使用的代码。其余的都工作正常。

四个 OK 广告从自定义标记返回一个超链接字符串(例如如下所示),该字符串易于使用并适用于所有浏览器:

<a href="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=brd&amp;FlightID=2997227&amp;Page=&amp;PluID=0&amp;Pos=9088" 
target="_blank">
<img src="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=bsr&amp;FlightID=2997227&amp;Page=&amp;PluID=0&amp;Pos=9088"
border="0"
width="300"
height="250">
</a>

我们使用以下代码加载到临时 div (divx),然后提取并重新加载到最终位置 (left2):

$('#divx').html("").load('/remoteAd.cfm?type=left2&referrer=/index.cfm', 
function(g){
var xx = $('#divx').html());
$('#left2').html(xx);
});

但是,当我们尝试将其分配给变量时,麻烦的人返回了一大块破坏了 javascript 的代码(我什至无法在不破坏它的情况下加载它。您可以在 this page 的源代码中查看它) ,所以我们决定使用 .text() 来提取它:

var xx = $('#divx').text();

而不是

var xx = $('#divx').html();

这会在除 IE 之外的所有浏览器中提取以下 js 字符串(包含换行符):

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 上其他人的建议,从字符串中提取超链接 block 是一件简单的事情。

但是,在 IE9 中,我得到 alert($('#divx').text()); 的空白结果谁能告诉我为什么?这毁了我的一天。

您可以通过查看 this page 的源代码来查看加载到临时 div 中的代码。我想要做的就是将其作为 text() 访问,并在将其加载到最终 div 之前将其与 <a>...</a> block 隔离。

最佳答案

您处于什么浏览器/文档模式?我认为我在浏览器模式:IE9 和文档模式:IE9 标准中获得了正确的数据。将文档模式切换到 IE9 标准以外的任何模式都会返回空的 .text() 数据。

为 future 的访问者提供与此相关的附加信息:

以下是附加信息:

http://blogs.msdn.com/b/ie/archive/2010/10/19/testing-sites-with-browser-mode-vs-doc-mode.aspx

并强制 IE9 进入标准模式:http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx

关于javascript - Jquery,在 IE 中从 div 获取 .text(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6867392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com