pjaxを使用してページとURLを制御しているので、ナビゲーションボタンを押すと、コンテンツとURLの一部が更新されずに変更されます。
しかし今、私はページ内にFacebookコメントプラグインを挿入するという問題に直面しています。これは、Facebookコメントプラグインが初めて表示されたときにのみ機能しますが、ページを別のページからFacebookコメントプラグインページに移動すると、もう機能していません。このページをナビゲートするたびに、「// connect.facebook.net/en_US/all.js#xfbml=1&appId=xxxxxxxx」を削除してリロードしようとしましたが、結果はまだです。同じように、誰かがこの問題を解決するのを手伝ってくれませんか?どうもありがとう。
私のコードは以下の通りです:-
//index.phpの一部
<div id="wrapper">
<div id="content">
<div id="navigation">
<div id="timer">1</div>
<ul>
<li>
<a href="/html5/sample3/finished/index.php" title="You Get What You Give">
You Get What You Give
</a>
<a href="/html5/sample3/finished/index.php?page=fortune-faded" title="Fortune Faded">
Fortune Faded
</a>
<a href="/html5/sample3/finished/index.php?page=liar" title="Liar">
Liar
</a>
<a href="/html5/sample3/finished/index.php?page=universal" title="Universal">
Universal
</a>
</li>
</ul>
</div>
<div id="container">
<div id="left">
<?php echo $content['left']; ?>
</div>
<div id="right">
<?php echo $content['right']; ?>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/core.js"></script>
//part of core.js
var systemObject = {
run : function() {
this.content($('#navigation ul li a'));
this.pop();
},
content : function(obj) {
obj.live('click', function(e) {
var thisUrl = $(this).attr('href');
var thisTitle = $(this).attr('title');
systemObject.load(thisUrl);
window.history.pushState(null, thisTitle, thisUrl);
e.preventDefault();
});
},
pop : function() {
window.onpopstate = function() {
systemObject.load(location.pathname);
};
},
load : function(url) {
$("#facebook-jssdk").remove(); //delete //connect.facebook.net/en_US/all.js#xfbml=1&appId=xxxxxxxxx
url = url === '/' ? '/ygwyg' : url;
jQuery.getJSON(url, { ajax : 1 }, function(data) { //load content
jQuery.each(data, function(k, v) {
$('#' + k + ' section').fadeOut(200, function() {
$(this).replaceWith($(v).hide().fadeIn(200));
});
});
});
},
};
$(function() {
systemObject.run();
});
//part of index.php?page=fortune-faded
<section>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=xxxxxxxxx";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-comments" data-href="http://example.com" data-num-posts="2" data-width="470"></div>
</section>