2012-04-07 2 views
2

Идея состоит в том, чтобы написать простой букмарклет. Если вопрос - это возможный дубликат, укажите мне его, потому что я не смог найти его.неожиданная ошибка токена: в букмаркете

Я пытаюсь сделать текущую страницу jquery включенной с помощью букмарклета и использовать определенную jquery apis.

Uncaught SyntaxError: Unexpected token ILLEGAL

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

javascript:(function(){ 
var d=document.createElement('script'); 
d.setAttribute('src', 'http://code.jquery.com/jquery-latest.js'); 
document.head.appendChild(d); 
$('a').each(function(){ 
    alert($(this).attr('src')); 
}); 
})() 

Если я выполнить тот же код строка за строкой в ​​консоли он работает.

Заранее спасибо

+0

ahh, возможно, потому что когда вы запустите его, jQuery еще не загружен. Когда вы добавляете точки останова, вы даете ему больше времени –

+0

@JibiAbraham: Хотя это правда, это не может вызвать SyntaxError. – ThiefMaster

+0

да, в идеале не должно вызывать SyntaxError – Dhiraj

ответ

1

Чтобы сделать страницу ждать, пока JQuery полностью загружен, добавить обработчик загрузки в script элемента. Это работает в браузере:

javascript:(function(){ 
var d=document.createElement('script'); 
d.src = 'http://code.jquery.com/jquery-latest.js'; 
d.onload = function(){ /* load handler here */ 
    $('a').each(function(){ 
    console.log($(this).attr('href')); 
    }); 
}; 
document.getElementsByTagName('head')[0].appendChild(d); 
})() 

Я изменил код немного (добавить атрибут src непосредственно в собственности созданных script элемента, извлечь head элемент в более классическом способе, использовать console.log вместо alert и зарегистрируйте атрибут href всех ссылок).

 Смежные вопросы

  • Нет связанных вопросов^_^