web-dev-qa-db-ja.com

Javascript:同じウィンドウで新しいページを開く

ターゲットURLが同じウィンドウで開くようにこのコードを変更する簡単な方法はありますか?

<a href="javascript:q=(document.location.href);void(open('http://example.com/submit.php?url='+escape(q),'','resizable,location,menubar,toolbar,scrollbars,status'));">click here</a>``
57
55skidoo

window.open()の2番目のパラメーターは、ターゲットウィンドウの名前を表す文字列です。

「_self」に設定します。

<a href="javascript:q=(document.location.href);void(open('http://example.com/submit.php?url='+escape(q),'_self','resizable,location,menubar,toolbar,scrollbars,status'));">click here</a>


Sidenote:次の質問は、イベントハンドラーをHTMLリンクにバインドするためのほぼ確実な方法の概要を示しています。

リンクをjs関数に置き換える最良の方法は何ですか?

71
keparo
<script type="text/javascript">
window.open ('YourNewPage.htm','_self',false)
</script>

リファレンスを参照してください: http://www.w3schools.com/jsref/met_win_open.asp

77
parwaze
<a href="javascript:;" onclick="window.location = 'http://example.com/submit.php?url=' + escape(document.location.href);'">Go</a>;
7
Stephen Walcher

ここに私のために働いたものがあります:

<button name="redirect" onClick="redirect()">button name</button>
<script type="text/javascript">
function redirect(){
var url = "http://www.google.com";
window.open(url, '_top');
}
</script>
3
Felceris Juozas

これを試してみてください、それはすなわち7と8で私のために働いた

 $(this).click(function (j) {
            var href = ($(this).attr('href'));
            window.location = href;
            return true;
3

Hrefの最後にURLを追加すると、各リンクは同じウィンドウで開きますか? HTML内で_BLANKを使用して同じことを行うこともできます。

1
Brett Melton

もし私があなただったら、私はそれを少し違ったやり方でとるだろう。クリックではなく、ページの読み込み時にテキストリンクを変更します。 jQueryで例を示しますが、Vanilla javascriptで簡単に実行できます(ただし、jQueryの方が優れています)

$(function() {
    $('a[href$="url="]')    // all links whose href ends in "url="
        .each(function(i, el) {
            this.href += escape(document.location.href);
        })
    ;
});

次のようにHTMLを記述します。

<a href="http://example.com/submit.php?url=">...</a>

これの利点は、人々がクリックしたものを見ることができることです(hrefは既に設定されています)。また、HTMLからjavascriptを削除します。

これは、PHPを使用しているように見えますが、サーバー側に追加してみませんか?

1
nickf

試してみる

<a href="#" 
   onclick="location='http://example.com/submit.php?url='+escape(location)"
   >click here</a>
0