Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как открыть новую вкладку? (https://javascript.ru/forum/events/30398-kak-otkryt-novuyu-vkladku.html)

trololo 03.08.2012 00:11

Цитата:

Сообщение от Deff (Сообщение 194133)
trololo,
Вот тогда и кликаешь

document.getElementById('Open').click();

а разве у меня в первом посте не тоже самое написано?) кажись те же действия я уже пробовал..

Deff 03.08.2012 00:17

trololo,
1. Создать заранее элемент на странице и скрыть
2. Кликать кады нужно программно
3. Как у Вас - не всматривался
===================================
В Примере - кроссбраузерность проверили ?

trololo 03.08.2012 00:21

Цитата:

Сообщение от Deff (Сообщение 194140)
trololo,
1. Создать заранее элемент на странице и скрыть
2. Кликать кады нужно программно
3. Как у Вас - не всматривался
===================================
В Примере - кроссбраузерность проверили ?

нет, кроссбраузерность как-то всегда уже потом допиливаю.. у меня та же последовательность, за исключением того, что элемент создаётся не «заранее», а уже после согласия перейти по ссылке. хз может в этом и причина.. сейчас попробую.

vadim5june 03.08.2012 00:29

Цитата:

Сообщение от trololo (Сообщение 194144)
нет, кроссбраузерность как-то всегда уже потом допиливаю.. у меня та же последовательность, за исключением того, что элемент создаётся не «заранее», а уже после согласия перейти по ссылке. хз может в этом и причина.. сейчас попробую.

Новую вкладку можно открыть только после клика юзера-чисто програмно нельзя

trololo 03.08.2012 00:31

var a=document.createElement('a');
a.href='http://google.com';
a.id='tmpLink';
a.target='_blank';
a.innerHTML='0';
a.onclick=function(){ //  добавил чтобы посмотреть вызовется ли
document.title='clicked'; // титл меняется. то есть клик происходит.
} // но ссылка по прежнему не открывается..
with(a.style)
display='none';
document.body.appendChild(a);
		
if(confirm('ok?')){
document.getElementById('tmpLink').click();
}

Deff 03.08.2012 00:36

trololo,
Вы можете тупо вставить тег на страницу - не скриптом ??? - Я же выложил код - из скрипта ток програмный клик и, если надо, - замена ссылки

trololo 03.08.2012 00:46

Цитата:

Сообщение от Deff (Сообщение 194154)
trololo,
Вы можете тупо вставить тег на страницу - не скриптом ??? - Я же выложил код - из скрипта ток програмный клик и, если надо, - замена ссылки

к сожалению нет. всё сделать нужно именно программно. не судьба видимо открывать в новой вкладке..

Deff 03.08.2012 00:50

trololo,
Цитата:

Сообщение от trololo
к сожалению нет. всё сделать нужно именно программно. не судьба видимо открывать в новой вкладке..

Тогда создайте скрытый дiв блок и аррenChildom - воткните рекомендуемый тег

<!DOCTYPE html PUBLIC>
<html>
<head>
<body>

<script type="text/javascript">
//Tyт функция, которую вызываем по требованию в вашем скрипте
function Zz(){
     document.getElementById('Open').click();
}
var a='<a id="Open" style="display:none"  href="http://htmlbook.ru/css/table-layout" target="_blank">0</a>\
<input type="button" value="Click" onclick="Zz()">';
var newDiv = document.createElement('div');
newDiv.className = 'my-class'
//newDiv.style.display = 'none' //cкрытие кнопки
newDiv.id = 'my-id'
newDiv.innerHTML=a;

document.body.appendChild(newDiv);
</script>

</body>
</html>

trololo 03.08.2012 01:41

вот так вот уже, получается «запустить ссылку»
var div=document.createElement('div');
div.style.display='none';
div.innerHTML='<a id="tmpLink" href="http://google.com" target="_blank">ok</a>';
document.body.appendChild(div);
if(confirm('?')){
document.getElementById('tmpLink').click();
}
вот только target="_blank" не учитывается почему-то.. даже не так, он учитывается и если этот атрибут присутствует в ссылке то ничего не открывается вообще, а если его убрать то ссылка открывается. жесть вообще.. или я уже не соображаю, так как время позднее.

Deff 03.08.2012 02:09

trololo,
Попробуйте скрипт поставить на чистую тестовую страницу

<!DOCTYPE html PUBLIC>
<html>
<head>
<body>

<script type="text/javascript">
var div=document.createElement('div');
div.style.display='none';
div.innerHTML='<a id="tmpLink" href="http://google.com" target="_blank">ok</a>';
document.body.appendChild(div);
if(confirm('?')){
document.getElementById('tmpLink').click();
}

</script>

</body>
</html>

FF все одно блокирет все ссылки созданные скриптом -

Занчит выход:
Находите на странице любую, имеющуюся на исходнике станицы ссылку с таргет и при возникновении Ваших условий - заменяете href на нужный и кликаете программно


Часовой пояс GMT +3, время: 14:31.