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 に答える
0
var $title = document.title;
var $href = location.href;
于 2013-09-09T15:16:05.017 に答える