59

是否有一种简单的方法可以修改此代码,以便在 SAME 窗口中打开目标 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>``

4

8 回答 8

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

见参考: http ://www.w3schools.com/jsref/met_win_open.asp

于 2011-08-24T20:21:28.577 回答
74

window.open()的第二个参数是一个字符串,表示目标窗口的名称。

将其设置为:“_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>


旁注: 以下问题概述了将事件处理程序绑定到 HTML 链接的更好方法。

用js函数替换链接的最佳方法是什么?

于 2008-11-06T05:21:18.840 回答
7
<a href="javascript:;" onclick="window.location = 'http://example.com/submit.php?url=' + escape(document.location.href);'">Go</a>;
于 2008-11-06T05:16:02.830 回答
3

试试这个,它在 ie 7 和 ie 8 中对我有用

 $(this).click(function (j) {
            var href = ($(this).attr('href'));
            window.location = href;
            return true;
于 2011-07-19T13:26:06.070 回答
3

这对我有用:

<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>
于 2016-03-23T08:13:27.537 回答
1

如果我是你,我会采取稍微不同的方式。在页面加载时更改文本链接,而不是在单击时更改。我将在 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……为什么不将它添加到服务器端呢?

于 2008-11-06T06:24:48.417 回答
1

那么通过在href末尾添加URL,每个链接都会在同一个窗口中打开?您也可以在 HTML 中使用 _BLANK 来做同样的事情。

于 2011-03-03T21:37:48.180 回答
0

尝试

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

于 2019-04-17T04:17:18.907 回答