1
  • index.html - メニューがありますcategory1, category2,category3
  • product.html - 機能ありchangeIframe([category1 | category2 | category3]);

「index.html」ページのメニューをクリックすると、リンクによって「product.html」ページに移動し、changeIframe(var)すぐに関数が呼び出されます。changeIframe(var)関数は比較し$var(の値の後varにクリックしたメニューの名前が続きます)、このページのコンテンツを変更します。どうすればこのようなことができますか?

4

6 に答える 6

2

アイデアとして、カテゴリを URL ハッシュとして渡します。

index.html:

<a href="product.html#category1">Category 1</a>
<a href="product.html#category2">Category 2</a>
<a href="product.html#category3">Category 3</a>

product.html

var category = (location.hash).replace('#','');
changeIframe(category); //call function

JavaScriptを使用してそれが必要な場合のみ。サーバー側のスクリプトを使用すると、より簡単になります。

于 2013-04-10T05:01:54.310 に答える
1

リンクにカテゴリをハッシュタグとして追加し、それを読んでください。

<a href="product.html#category1">menu link</a>

商品ページで

window.onload = function(){

    var category = (window.location.hash).replace("#",'');;
    alert(category);
    // changeIframe(category)

}

@Charlie が示すように「#」を削除します。

于 2013-04-10T05:07:40.623 に答える
0

index.phtml ページで、リンクをクリックしてメニュー名をクエリ文字列として渡し、product.phtml に到達したら $(document).ready 関数で changeiframe(var) を呼び出します。

于 2013-04-10T04:55:57.597 に答える
0

リンクをクエリ文字列として渡しproduct.html?category=1、そのページでこのコードを使用できます

  function getUrlVars()
    {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;

    }



    $(document).ready(function() {   

   var id = getUrlVars()["category"];
    changeIframe(var);
    });
于 2013-04-10T05:12:23.937 に答える
0

PHPを使用してそれを行う1つの方法(それをサポートするサーバーがある場合)。

最終的に PHP をセットアップする場合は、次の 1 つのオプションがあります。

index.php:

<a href="product.php?cat=1">Category 1</a>
<a href="product.php?cat=1">Category 2</a>
<a href="product.php?cat=1">Category 3</a>

次に、product.php の Javascript でこのコードを使用して、渡されたカテゴリを取得します。

changeIframe(<?php $_GET['cat'] ?>)
于 2013-04-10T05:08:54.640 に答える