问题 JSLint“document.write可以是eval的一种形式” - 这是怎么回事?


我在JSLint中遇到过这条消息......

document.write可以是eval的一种形式。

并且想知道究竟是怎么回事?

JSLint说明 页面状态:

eval函数...提供对JavaScript的访问   编译器。这有时是必要的,   但在大多数情况下,它表明了   存在极其糟糕的编码....

那么,怎么做 document.write “提供对JavaScript编译器的访问”然后呢?

谢谢


4366
2018-03-30 15:59


起源

看到这个答案: stackoverflow.com/a/15048239/798677 - That Brazilian Guy


答案:


你的浏览器对此做了什么?

document.write('<script type="text/javascript">window.alert("evaled " + (1 + 2))</script>');

14
2018-03-30 16:07



language=jscript? - Rocket Hazmat
@Rocket:好像我有点过时了 type 属性现在是首选。但不管是否弃用,它都有效。 - Ben Voigt
@Ben:是的,它有效,但这可能是因为浏览器忽略了 language 属性首先。 - Rocket Hazmat
@Rocket:这是正确的现代等价物吗?我只涉足DHTML。 - Ben Voigt
@Ben:是的,这是对的。 :-)在HTML5中,甚至不需要JavaScript类型。 - Rocket Hazmat