загружает этот JS кода из букмарклета:Попадая функцию из другого сценария в JS
function in_array(a, b)
{
for (i in b)
if (b[i] == a)
return true;
return false;
}
function include_dom(script_filename) {
var html_doc = document.getElementsByTagName('head').item(0);
var js = document.createElement('script');
js.setAttribute('language', 'javascript');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', script_filename);
html_doc.appendChild(js);
return false;
}
var itemname = '';
var currency = '';
var price = '';
var supported = new Array('www.amazon.com');
var domain = document.domain;
if (in_array(domain, supported))
{
include_dom('http://localhost/bklts/parse/'+domain+'.js');
alert(getName());
}
[...]
Обратите внимание, что «GetName()» функция находится в http://localhost/bklts/parse/www.amazon.com/js. Этот код работает только -второй раз, когда я нажимаю букмарклет (функция, похоже, не загружается до появления предупреждения()).
Как ни странно, если изменить код:
if (in_array(domain, supported))
{
include_dom('http://localhost/bklts/parse/'+domain+'.js');
alert('hello there');
alert(getName());
}
я получаю оба оповещения на первом щелчке, а остальные функции сценария. Как заставить скрипт работать с первым щелчком букмарклета без ложных предупреждений?
Спасибо! -Mala
Мне кажется, что единственным способом, с которым новое предупреждение будет меняться, является время, поэтому, возможно, проблема заключается в том, что браузер не загружает лишний javascript достаточно быстро. –