“ javascript:” uri协议将整个页面替换为文本

时间:2018-07-12 18:38:51

标签: javascript uri

因此,我正尝试使用诸如javascript:之类的代码建立一个a="foo"链接。我尝试使用javascript:a="foo",但是没有用。出于某种原因,它没有将变量a更改为"foo",而是像foo一样将整个页面替换为document.write,就像javascript:a%3D%22foo%22

我也尝试对URI进行编码,但是javascript:%61%3D%22%66%6F%6F%22javascript:alert("Hello World!")都不起作用。

由于调用javascript:a=String("foo")之类的函数有效,因此我运行了javascript:var%20a="foo",也没有运气。尽管使用javascript:a=123和{{1}}一样有效,但是对我来说无效,因为我的最终目标是更改对象的属性。

有什么办法可以避免这种情况?

1 个答案:

答案 0 :(得分:1)

在DOM属性中内联设置变量不是一个好习惯,但是如果必须这样做:

<a href="javascript: void(a='foo')">Link</a>

<a href="javascript: void(0)" onclick="a='foo'">Link</a>