我想从一个可编辑输入字段执行脚本点击一个按钮如何从JS上的输入字段执行脚本?
例如当,如果你输入“警报(” X“);”,我想提醒你的“X”,而且如果你输入“for(i = 0; i < 3; i ++){alert(i);}”我希望它执行它。
我该如何做到这一点?
编辑: eval()是唯一的解决方案吗?因为我看过,这是危险的:
我想从一个可编辑输入字段执行脚本点击一个按钮如何从JS上的输入字段执行脚本?
例如当,如果你输入“警报(” X“);”,我想提醒你的“X”,而且如果你输入“for(i = 0; i < 3; i ++){alert(i);}”我希望它执行它。
我该如何做到这一点?
编辑: eval()是唯一的解决方案吗?因为我看过,这是危险的:
请注意,你从用户输入取和脚本的网站上的上下文中运行它。因此,脚本可以执行浏览器/域上运行的JavaScript有能力执行的任何操作(包括cookie窃取,XSS,驱动恶意软件等)。
您可以切实做的减轻风险的唯一方法是不要eval()用户提供的内容。我建议考虑以下方案:
iframe
作为一个环境中运行用户脚本: http://dean.edwards.name/weblog/2006/11/sandbox/编码愉快!
+1真的很好的建议 – andyb
尽量避免将人员发送到w3schools文档。以下是关于eval在MDN的一些信息:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval 如果你很好奇我为什么这样说,这个网站(虽然也许有点刺耳)总结它up:http://w3fools.com/ –
感谢这一个http://w3fools.com/ 我学到了很多有趣的观点。 – Ruslan
使用eval()命令,它会评估并执行您传递给它的JavaScript。
使用eval一样的onclick =“的eval(的document.getElementById(‘your_input’))”
记得在做这件事时要非常小心。确保你信任你的用户,因为可以输入各种恶意JavaScript。 –
的确如此,我在研究eval()时只是读了一些东西()https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval#section_5 – ajax333221