2015-09-18 2 views
0
html = '<a href="#" onclick="alert("This link is clickable only in the mobile!")">text</a>' 

Я добавляю свой html, но когда я нажимаю на него, говорит «Неожиданный токен», невозможно ли выполнить встроенный триггер?встроенный триггер javascript не работает

+0

Проблема с кавычками вложенности, использование внутри предупреждения – Tushar

+0

Я рекомендую вам не использовать встроенные обработчики, используйте 'addEventListener' для привязки событий – Tushar

ответ

4

Вы должны избежать " символов в значениях свойств ... Используйте &quot; special entity:

html = '<a href="#" onclick="alert(&quot;This link is clickable only in the mobile!&quot;)">text</a>' 

Есть лучшие варианты для достижения этой цели, вместо того, чтобы писать сырой HTML в JavaScript.

jQuery:

var aElement = jQuery("<a>").attr("href", "#").click(function() { 
    alert("This link is clickable only in the mobile!"); 
}); 
// You can append it like: 
aElement.appendTo(document.body); 

Pure Javascript:

var aElement = document.createElement("a"); 
aElement.setAttribute("href", "#"); 
// If you want the onclick attribute to show up in HTML source: 
aElement.setAttribute("onclick", "alert(\"This link is clickable only in the mobile!\")"); 
// This way is easier: 
aElement.onclick = function() { 
    alert("This link is clickable only in the mobile!"); 
} 
// Append like: 
document.body.appendChild(aElement); 
3

Это не представляется возможным точно так потому, что вы смешиваете двойные кавычки.

Используйте сбежавшего одинарную кавычку внутри строки:

html='<a href="#" onclick="alert(\'This link is clickable only in the mobile!\')">text</a>' 
1
html = '<a href="javascript:alert(&quot;This link is clickable only in the mobile!&quot;)">text</a>' 

Вы можете directcly прикрепить метод яваскрипта в анкера href также вам нужно закодировать (побег) кавычки.

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