"javascript:" uri 协议用文本替换整个页面
"javascript:" uri protocol replaces whole page with text
所以,我试图用 a="foo"
之类的代码制作 javascript:
link。我尝试使用 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>
所以,我试图用 a="foo"
之类的代码制作 javascript:
link。我尝试使用 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>