gpt4 book ai didi

JQuery 在 IE 中无法正确解析 attr ("href")

转载 作者:行者123 更新时间:2023-12-03 22:46:56 24 4
gpt4 key购买 nike

我有一个非常奇怪的问题,我希望有人能解释一下。我正在使用 Jquery 从另一个网站(我拥有的)检索 Http 响应。一旦我收到 DOM,我就会解析它以获得某些信息。但是,当我尝试获取链接的 href 属性时,IE 会将本地域添加到 href 的开头!

这是我的代码:

$.ajax({ 
type: "POST",
url: "MyPage.aspx/GetWebResponse",
data: "http://myWebSite/pages/AnotherPage.aspx",
contentType: "application/json; charset=utf-8",
dataType: "json",
asynch: false,
success: function(data)
{
var __htmlForMainPage = data.d;


var PageLink = $(__htmlForMainPage).find("a:contains('Get This Link')").attr("href");
}
});

我的变量 PageLink 应该是“/pages/getThisPage.aspx?id=8347”。但是,它返回为“http://myserver/pages/getThisPage.aspx?id=8347 ”。

这仅发生在 IE 中。火狐没问题。这也只有当我把它放在服务器上时才会发生。当我在本地运行它时,在 IE 和 FF 中一切正常。但是当我把它放在服务器上时,FF仍然可以正常工作,但IE却不能。

有人以前见过这个,或者知道这里发生了什么吗?非常感谢任何帮助!

最佳答案

在 IE 中访问 A 元素的 href DOM 属性时,它将返回 url 的绝对路径。 IE7 及更低版本中的 getAttribute() 也是如此(因为 getAttribute 直到 IE8 才被破坏)。

http://msdn.microsoft.com/en-us/library/cc848861(VS.85).aspx :

Internet Explorer 8 or later. In IE8 mode, the value of the HREF depends on the context of the reference to the attribute. When read as a Document Object Model (DOM) attribute, HREF returns a URL relative to the domain hosting the Web page. HREF returns the value specified by the page author when read as a content attribute when the page is displayed in an earlier document compatibility mode, or when the page is viewed with an earlier version of the browser. For more information, see Attribute Differences in Internet Explorer 8.

如果命名约定相同,jQuery 将始终获取 DOM 属性:

// If applicable, access the attribute via the DOM 0 way
if ( name in elem && notxml && !special ) {
// ...
}

此处的 name in elem 部分用于检查是否已指定 DOM 属性。要解决 IE8 的此问题,您可以以大写形式指定属性 - .attr("HREF") - 因为 DOM 属性区分大小写。不幸的是,IE7 及更低版本的唯一解决方法是执行字符串替换:

var base = window.location.href.substring(0, window.location.href.lastIndexOf("/") + 1);
PageLink = PageLink.replace(base, "");

关于JQuery 在 IE 中无法正确解析 attr ("href"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2342903/

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