1

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

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

我正在使用 jQuery 1.10.1 将参数(当前页面 url,对于某些社交网络,当前页面标题)附加到链接 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 中,我收到“页面错误”,如下所示: Line: 0 Char: 0 Error: Script error Code: 0

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

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

带有 4 个网络链接的测试页面:

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

4

4 回答 4

3

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

这些访问“文档”属性:

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

这些访问当前属性值:

var $title = document.title;
var $href = location.href;
于 2013-09-09T14:58:56.800 回答
2

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

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

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

尝试使用本机属性:

var $title = document.title;
var $href = location.href;
于 2013-09-09T14:56:28.260 回答
1

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

var title = document.title

应该解决问题

于 2013-09-09T14:50:08.157 回答
0
var $title = document.title;
var $href = location.href;
于 2013-09-09T15:16:05.017 回答