ie7脚本错误行0 char 0代码0 jquery 1.10.1

时间:2013-09-09 14:48:20

标签: javascript jquery internet-explorer

我正在为网站添加一些社交分享链接。在HTML中,我只有基本链接,如:

<a class="facebook_share" href="https://www.facebook.com/sharer/sharer.php">Facebook</a>

我正在使用jQuery 1.10.1将参数(当前页面网址和某些社交网络的当前页面标题)附加到链接href。这是一个例子:

jQuery(document).ready(function($) {
"use strict";
var $title = $(this).attr('title');
var $href = $(location).attr('href');
// Facebook
var fb_url = $("a.facebook_share").attr("href");
$("a.facebook_share").attr("href", fb_url + "?u=" + encodeURIComponent($href)); // add  encoded version of current page href to FB url
});

在IE7中,我收到“页面错误”,如下所示: 行:0 字符:0 错误:脚本错误 代码:0

因此在IE7中,参数不会被添加到链接href。

Chrome,F'fox都行。 IE8现在可以了,我正在公共服务器上进行测试,但是当我在我的本地WAMP服务器上进行测试时,它正在提供“第5行:对象不支持此属性或方法”。

此处包含指向4个网络的链接的测试页面:

http://test-interact.co.uk/test_social_share_links.htm

4 个答案:

答案 0 :(得分:3)

这与属性和属性有关。设置属性,然后不更改,属性更改。因此,文档/页面等(标题,href)上的属性会发生变化,并且可以更改访问,属性保留原始值,并且当它们“真正”属性时不会更改。

这些访问“文档”属性:

var $title = $(this).attr('title');
var $href = $(location).attr('href');

这些访问当前属性值:

var $title = document.title;
var $href = location.href;

答案 1 :(得分:2)

jQuery的$()函数仅用于“包装”DOM元素。

var $title = $(this).attr('title');
var $href = $(location).attr('href');

有可能,这就是在IE7中打破它的原因。这不是访问这些属性的正确方法。

尝试使用原生属性:

var $title = document.title;
var $href = location.href;

答案 2 :(得分:1)

您不应该通过DOM访问标题,必须使用document.title变量

var title = document.title

应解决问题

答案 3 :(得分:0)

var $title = document.title;
var $href = location.href;