2

jQuery load() メソッドを介して他のページ (portfolio.php、friendzone.php など) に接続されている index.html という Web ページがあります。

例: メニューには次のコードがあります。

<a href="./" class="button"><div id="homepageBtn"></div></a>
<a onclick="showPage('progressi')" class="button"><div id="progressiBtn"></div></a>
<a onclick="showPage('interessi')" class="button"><div id="interessiBtn"></div></a>
<a onclick="showPage('friendzone')" class="button"><div id="friendzoneBtn"></div></a>
<a onclick="showPage('contact')" class="button"><div id="emailBtn"></div></a>

ホームページ オプションではないものをクリックすると、showPage() 関数が呼び出されます。

function showPage(page) {
    $("#post-title").fadeOut (200, function() {
        $("#post-title").html(page); // Edit the page title in the div
        Cufon.refresh(); // I use Cufon plugin, so I reload it
    }).fadeIn(500);

    $("#post-content").fadeOut (200, function() {
        $("#post-content").load(page + ".php", function() { // If I pass for example "contact", it loads me the page contact.php in the "post-content" div
            $('a.boxed').colorbox({rel: 'Galleria'}); // I use colorbox jQuery plugin, so I reload it here
            $('a.iframe').colorbox({iframe: true, width: "80%", height: "80%"}); // Same here

        });
    }).fadeIn(500);
}

1 つのことを除いて、すべてが問題なく動作します。

div 内に別のページ コンテンツをロードしても、URL は変わりません。これは、Google のクローラーや、ブラウザーの [戻る] ボタンをクリックして前のページに移動したり、私の Web サイトの特定のページへのリンクを共有したりするユーザーにとって、非常に悪いことだと思います。

div にロードしたコンテンツに基づいて別の URL を取得する方法はありますか?

4

2 に答える 2

3

実際のページの URL を変更せずにブラウザーの URL を変更できますが、これがクローラーに影響を与えるとは思いません。ロボット用のサイトマップを生成する必要があります。Google ウェブマスター アカウントをセットアップし、そこにサイトマップを送信します。

ハッシュやページのリロードを行わずに新しい URL でアドレス バーを更新する

window.history.pushState("object or string", "Title", "/new-url");

get 変数を使用してメイン ページにリダイレクトする share.php を作成してみませんか? たとえば、すべてのページに、index.php?page=friendzone にリンクする「共有」ボタンがあります。

誰かが共有リンクをロードすると、このようなものが含まれます。<head>タグに配置します。

<? 
//Include this right before your end </head>.
if(isset($_GET['page']))
{
    ?>
    <script>
    $(function() {
        showPage('<? echo htmlentities($_GET['page']); ?>');
    });
    </script>
    <?
}
?>

showPage 内で次のことができます。

if ( history.pushState ) history.pushState( {}, page, "/?page="+page );
于 2012-12-07T14:39:04.683 に答える