Итак, я пытался создать javascript:
ссылку с некоторым кодом вроде a="foo"
. Я попытался использовать javascript:a="foo"
но это не сработало. Вместо того, чтобы сменить var a
на "foo"
он по какой-то причине заменяет всю страницу foo
как document.write
.
Я также пробовал кодировать URI, но ни javascript:a%3D%22foo%22
ни javascript:%61%3D%22%66%6F%6F%22
работают.
Так как вызывающие функции, такие как javascript:alert("Hello World!")
, Я запускал javascript:a=String("foo")
, даже не повезло. Использование javascript:var%20a="foo"
действительно работает, а также javascript:a=123
, но это не сработает для меня, потому что моя конечная цель - изменить свойство в объекте.
Есть ли способ избежать этого?
Установка переменных внутри встроенных атрибутов DOM не является хорошей практикой, но если вам нужно:
<a href="javascript: void(a='foo')">Link</a>
или же
<a href="javascript: void(0)" onclick="a='foo'">Link</a>
void()
работает.
javascript:
возвращает строку, оно печатает строку, но void всегда возвращает undefined
. Вот почему var
работал.
javascript:a=String.fromCharCode(102,111,111)
делает то же самое.