Я пытаюсь написать букмарклет, в котором находится сайт, на котором находится пользователь, выполняет ли синтаксический анализ и запрос ajax и открывает новое окно с этим info как параметр.Закладка закладок блокируется, если я пытаюсь что-либо сделать, кроме открытия нового окна.
Вот что я получил:
<a href="javascript:
(function($)
{
var a, http, options, request, st, u;
u = document.location.hostname;
a = u.split('.');
st = a[a.length - 2];
path = 'http://ajax.googleapis.com/ajax/services/feed/find?callback=?&v=1.0&q=' + st;
$.ajax
({
type: 'GET',
url: path,
async: false,
dataType: 'json',
success: function(data)
{
var targ = data['responseData']['entries'][0]['url'];
window.open ('http://localhost:3000/bmfeed?targ='+targ,'menubar=1,resizable=1,width=350,height=250');
}
});
})(jQuery)
"> newwindow </a>
Он находит правильный URL, но новое окно блокируется блокировщик всплывающих окон.
Если вместо этого я просто
<a href='javascript: window.open ("http://localhost:3000?targ=asdfasdf","mywindow","menubar=1,resizable=1,width=350,height=250");'> oneline </a>
открывает новую вкладку раскованно. Я предполагаю, что разница в том, что я делаю некоторый синтаксический анализ в первом примере, который браузер не любит.
Есть ли способ получить мой торт и съесть его? Огромное спасибо!
window.open следует вызывать от нажатия кнопки или ссылки, букмарклет просто магически происходит до JS. Вы можете добавить ссылку на документ для вызова последней строки onclick, использовать iframe или установить location.href вместо использования всплывающего окна. – dandavis