как открыть новую вкладку?
после определённых действий пользователя, нужно открыть ссылку на другой ресурс в новой вкладке. window.open не открывает, или пытается открыть но браузер блочит. смотря где тестить. с location.href вообще вроде не получится такое.. пытался ещё так
var a=document.createElement('a'); a.href="site.com" a.target="_blank"; document.body.appendChild(a); a.click(); тоже не получается.. есть ли ещё способы отправить пользователя на другой сайт но в новой вкладке? |
Цитата:
Кликните не выпендриваясь ссылку с нужным адресом ссылку просто вставьте в страницу заранее и скройте display:none |
да, вроде бы, не блочит. а что будет открываться - вкладка, или окно - решает только сам браузер.
погуглим? <a href="http://google.ru/?q=FOOBAR">готов!</a>(нажать) <script> document.body.onclick = function (e) { open( (e ? e.target:window.event.srcElement).href ); }; </script> |
melky,
скажи что это за х**ня?:D :blink: :blink: |
Цитата:
|
<script type="text/javascript"> function Zz(){ document.getElementById('Open').click(); } </script> <a id="Open" style="display:none" href="http://htmlbook.ru/css/table-layout" target="_blank">0</a> <input type="button" value="Click" onclick="Zz()"> |
melky,
окей, а каким хреном работает обфусцированный скрипт?:blink: :blink: |
Цитата:
пользователь нажимает на определённый элемент, отправляется ajax запрос, в onreadystatechange вызывается другой метод, в котором окно confirm и вот тут в зависимости от того что выберет пользователь ok/cancel, должна открыться ссылка в новой вкладке. типа if(confirm('okay?')){ открываем } |
Цитата:
Вот тогда и кликаешь document.getElementById('Open').click(); |
Цитата:
|
Цитата:
|
trololo,
1. Создать заранее элемент на странице и скрыть 2. Кликать кады нужно программно 3. Как у Вас - не всматривался =================================== В Примере - кроссбраузерность проверили ? |
Цитата:
|
Цитата:
|
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(); } |
trololo,
Вы можете тупо вставить тег на страницу - не скриптом ??? - Я же выложил код - из скрипта ток програмный клик и, если надо, - замена ссылки |
Цитата:
|
trololo,
Цитата:
<!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> |
вот так вот уже, получается «запустить ссылку»
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" не учитывается почему-то.. даже не так, он учитывается и если этот атрибут присутствует в ссылке то ничего не открывается вообще, а если его убрать то ссылка открывается. жесть вообще.. или я уже не соображаю, так как время позднее. |
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 на нужный и кликаете программно |
<script type="text/javascript"> function Zz(){ var a = document.getElementById('Open'); a.href='http://google.com'; a.click(); } </script> <a id="Open" style="display:none" href="http://htmlbook.ru/css/table-layout" target="_blank">0</a> <input type="button" value="Click" onclick="Zz()"> |
Цитата:
if(confirm('?')){ Zz(); } то тут и начинается магия, ссылка открывается, только если убрать target="_blank".. и такое творится даже с уже существующими ссылками, которые созданы не программно. |
trololo,
Возможны траблы из-за модального Окна confirm <style type="text/css"> /* Вариант нового Стиля */ #confirm{ background:#F7F7F7; border:1px solid red; padding:12px; width:200px; height:100px; position:fixed; z-index:100; left:50%; top:20%; margin-left:-100px; border-radius:15px; -webkit-border-radius:15px; -khtml-border-radius:15px; -moz-border-radius:15px; -o-border-radius:15px; -ms-border-radius:5px; box-shadow: 0px 5px 18px #000; -webkit-box-shadow:0px 5px 18px #000; -khtml-box-shadow:0px 5px 18px #000; -moz-box-shadow:0px 5px 18px #000; -ms-box-shadow:0px 5px 18px #000; } </style> <div id="confirm" style="display:none;"> <a id="Open" style="display:none" href="http://htmlbook.ru/css/table-layout" target="_blank">0</a> Тут Ваше Извещение Вы Готовы ?<br> <p style="float:right;margin-top:40px;"> <input type="button" value="Да" onclick="Zz();gloseConfirm()"> <input type="button" value="Отмена" onclick="gloseConfirm()"> </p></div> <script type="text/javascript"> function gloseConfirm(){ document.getElementById('confirm').style.display='none'; } function Zz(){ var a = document.getElementById('Open'); a.href='http://google.com'; a.click(); } if(true) { document.getElementById('confirm').style.display='block'; } </script> Гы - Вывод - не делайте Переход с Вызовом confirm: Поставьте разворачивающийся div c Вашим вопросом - и по нажатию в нем кнопки - переход |
Цитата:
<style> .a_but{display:block;width:50px;height:20px; background:rgba(200,200,200,1);text-decoration:none; border-radius:5px;} </style> <a class=a_but href='http://javascript.ru' target=_blank>да</a> |
Цитата:
|
ха, да вот это я протупил. действительно можно ведь отрисовать своё окно)) спс, посоны.
|
<a href="анкор" target="_blank" >Text сылки</a> и все дела
|
Цитата:
|
Часовой пояс GMT +3, время: 10:39. |