0

背景は次のとおりです。検索フィールドを使用して関連するリンクのリストを検索し、ユーザーの設定に基づいて、検索したリンクを同じページの div または新しいページに表示する Javascript 関数を作成しました。 _blank を使用したウィンドウ。

私の問題は、ユーザーが新しいタブではなく div 内でページをロードすることを選択した場合でも、ページ全体の URL を引き続き表示できるようにすることであることにすぐに気付きました。URL をコピー/貼り付けできるようにしてほしい。完全なリンクを作成するJavascript関数をすでに取得しているので、「document.getElementByID('IDHERE').value =processedPage;」を追加するだけだと思いましたが、それは(何らかの理由で)そうではないようです働く?

以下は、参照用の私の Javascript です。

    /* Function to go jump to a user guide */
function goTo() {
    var searchAgainst = document.getElementById('guidesSearch').value; // get the search value
    nWT_check = localStorage.getItem('newWindowToggle');
    var processedPage = 'http://update.my-site.com/onlinehelp/';
    var findFlag = 0;

    for (i=0; i<allGuides.length; i++) {
        if (searchAgainst == allGuides[i]) {
            findFlag = 1;
            processedPage += allURLs[i];
            if (nWT_check == '0') {  //Check against the site options
                alert(processedPage); // ALERT to see if processedPage is correct. It is, and this alert triggers.
                document.getElementById('guidesLink').value = processedPage; // This does not seem to trigger?
                document.getElementById('guidesFrame').src = processedPage; // But then this does, which loads the new page in the DIV.
            }
            else if (nWT_check == '1') {
                window.open(processedPage,'_blank');
            }
        }
    }
    if (findFlag == 0) {
        $('#notFoundModal').modal();
    }
}

なので基本的には localStorage の項目を見て、0ならDIV、1ならnew pageを行う。if (nWT_check == '0') { //サイト オプション部分と照合してデバッグしようとしています。

私は毎回、知識が貴重であり、複雑なコードを常にデバッグする時間がないことを知っていますが、私が間違っている可能性があることや、これにどのようにアプローチするかについての洞察は大歓迎です.

4

2 に答える 2

0

URL ハッシュ技術の使用を検討する必要があります。

メイン ページが の場合index.php、各ページは Ajax によって読み込まれるため、JavaScript を使用してドキュメントの場所のハッシュ ( document.location.hash='...') を新しい値に変更します。

index.php#pageName

そのため、メイン ページが読み込まれたら、JavaScript を使用してハッシュ値があるかどうかを確認し、ハッシュ値を使用して、AJAX を使用して一致するコンテンツを取得します。

この記事では、この仕組みの詳細について説明しています: http://blog.mgm-tp.com/2011/10/must-know-url-hashtechniques-for-ajax-applications/

この手法の優れた点は、ユーザーが URL をブックマークして共有することができ、引き続き機能することです。

于 2012-07-30T17:37:17.300 に答える
0

代わりに jQuery を使用してフィールドの値を設定してみます。

$("#guidesLink").val(processedPage);

これにより、入力フィールド値の設定に関する潜在的なブラウザの癖が修正される可能性があります。

于 2012-07-31T01:02:30.180 に答える