'
- это HTML для '
.Таким образом, для первого примера HTML анализируется и передается механизм JavaScript:
return popupTest('This is 'some' "test" string')
… а второй '
завершает строку.
С другой стороны:
onclick="return popupTest('This is \'some\' \"test\" string')"
Анализируется как:
Атрибут onclick со значением return popupTest('This is \'some\' \
, за которым следуют некоторые недействительные данные.
Вам нужно разобраться с JavaScriptсначала:
return popupTest('This is \'some\' "test" string')
и , затем экранируйте его для HTML:
onclick="return popupTest('This is \'some\' "test" string')"
Возможно, было бы лучше использовать ненавязчивый JavaScript и привязкуобработчики событий с JavaScript вместо использования встроенных атрибутов событий.