0

開いている Web ページ ダイアログがあります。そこから、私がやりたいことは、ユーザーがリンクをクリックしたときに、変更されたクエリ文字列パラメーターでダイアログの内容を更新することです。私が直面している問題は、同じ Web ページを新しいパラメーターで更新するのではなく、新しいブラウザー ウィンドウがポップアップすることです。

ダイアログを開くために使用するページは次のとおりです。

<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
    function ShowPopup() {
        var popWinFeatures = "dialogWidth: 800px;dialogHeight:600px;center:yes;status:no;scroll:no;resizable:yes;help:no";

        window.showModalDialog("webPageDialog.html","PopUpWin",popWinFeatures);

    }
</script>
</head>
<body>
    <a href="#" id="openWebPageDialog" onclick="ShowPopup()">Click For Modal</a>
</body>
</html>

これは、変更されたクエリ文字列パラメーターで Web ページを更新しようとする Web ページ ダイアログ内のコードです。

<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="scripts/jquery-1.6.4.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function(){
        var queryString = "?ab=123";
        var newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;

        $('#testLink').attr('href', newURL+queryString);
    });

</script>
</head>
<body>
<a href="#" onclick="" id="testLink" target="_self">Please Click Me</a>
</body>
</html>

window.open設定だけでなく、使用も試しましwindow.locationた。また、設定も試しましwindow.location.hrefたが、結果は同じでした。

新しいブラウザ ウィンドウには、期待どおりのものが表示されます。同じウィンドウにないだけです。

考え?

4

1 に答える 1

0

この質問を投稿して以来、2 つの解決策を思いつきました。誰かが私の後に来て、私が何をしたのか知りたい場合は、どうぞ!

1 つ目は、ポップアップを非モーダルにすることでした。モーダルピースを削除すると、期待どおりの動作が得られました。これは私の状況では機能しませんでしたが、別の理由で...セッション Cookie が引き継がれなかったようです。この Web アプリでは、正しいページを表示する前にログイン ページが表示されます。これは奇妙に思えましたが、なぜそれが起こっているのかを調査する時間がありませんでした。

2番目(これが私が最終的に行った解決策です)は、iframeを使用し、iframe内に必要なものを表示することでした。間違いなく私のお気に入りではありませんが、うまくいきます!

于 2012-02-01T16:15:51.003 に答える