Javascript: открыть новую страницу в том же окне - PullRequest
57 голосов
/ 06 ноября 2008

Есть ли простой способ изменить этот код, чтобы целевой URL открывался в одном и том же окне?

Ответы [ 8 ]

77 голосов
/ 25 августа 2011
<script type="text/javascript">
window.open ('YourNewPage.htm','_self',false)
</script>

см. Ссылку: http://www.w3schools.com/jsref/met_win_open.asp

71 голосов
/ 06 ноября 2008

Второй параметр 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>


Sidenote: Следующий вопрос дает обзор возможно лучшего способа привязки обработчиков событий к ссылкам HTML.

Какой лучший способ заменить ссылки на функции js?

7 голосов
/ 06 ноября 2008
<a href="javascript:;" onclick="window.location = 'http://example.com/submit.php?url=' + escape(document.location.href);'">Go</a>;
3 голосов
/ 23 марта 2016

Вот что у меня сработало:

<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 голосов
/ 19 июля 2011

попробуй это у меня сработало в т.е 7 а то есть 8

 $(this).click(function (j) {
            var href = ($(this).attr('href'));
            window.location = href;
            return true;
1 голос
/ 04 марта 2011

Таким образом, добавляя URL в конце href, каждая ссылка будет открываться в том же окне? Вы также можете использовать _BLANK в HTML, чтобы сделать то же самое.

1 голос
/ 06 ноября 2008

На вашем месте я бы воспринял это немного иначе. Измените текстовую ссылку при загрузке страницы, а не по щелчку. Я приведу пример в jQuery, но это легко сделать в ванильном 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 уже установлен), и это удаляет JavaScript из вашего HTML.

Все это говорит, похоже, что вы используете PHP ... почему бы не добавить его на стороне сервера?

0 голосов
/ 17 апреля 2019

1001 * попробовать *

<a href="#" 
   onclick="location='http://example.com/submit.php?url='+escape(location)"
   >click here</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...