3

Firefoxでwindow.openを使用して新しいウィンドウを開き、スキップナビゲーションを使用して新しいウィンドウ内のページの別のセクションをナビゲートしようとすると、機能せず、プレビューウィンドウがリロードされます。これが私が行っていることです。

<html>
<head>
    <script>
    function openWindow()
        {
            var win = window.open("","_blank");
            win.document.write("<!DOCTYPE html><html><head></head><body><a href='#rajeev'>hi</a><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><div id='rajeev'>To Come Here</div></html>");
            win.document.close();
        }
    </script>
</head>
<body>
    <button type="button" onclick="openWindow()">Display Date</button>
</body>
</html>
4

1 に答える 1

1

ハッシュの代わりに、次のonclickコードをリンクに追加できるはずです。

onclick='$(document).scrollTop($(\"#rajeev\").offset().top);'
// Escaped the quotes since it will be placed in a document.write("");

ポップアップのコードにjQueryをインポートする必要がありますが、これを使用する場合は次のようになります。

`win.document.write("<script src='http://code.jquery.com/jquery-1.8.2.js' type='text/javascript'></script>`

</script>ブラウザは、タグを「ポップアップ書き込み」スクリプト全体の終了タグとして解釈しているようです。</script>これは、以下に示すように、文字列のタグを切り取ることで回避できます。

このコードはFirefoxとChromeで機能します。

<html>
    <head>
        <script>
            function openWindow()  {
                var win = window.open("","_blank");
                win.document.write("<!DOCTYPE html><html><head><script src='http://code.jquery.com/jquery-1.8.2.js' type='text/javascript'></scr");
                // Split up the </script> tag.
                win.document.write("ipt></head><body><a  onclick='$(document).scrollTop($(\"#rajeev\").offset().top);'>hi</a><br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br><div id='rajeev'>To Come Here</div></html>");
                win.document.close();
            }
        </script>
    </head>
    <body>
        <button type="button" onclick="openWindow()">Display Date</button>
    </body>
</html>​

<a>これで、クリックできるようにスタイルを設定したり<button>、たとえばに置き換えたりするだけで済みます。

(Stackoverflowは、上記のコードで強調表示されている構文を少し混乱させますが、これは有効なjsです。また、通常、HTMLにインラインイベントリスナーを追加する必要はありません。)

于 2012-11-22T07:39:59.980 に答える