支持我有这个隐藏的领域:
<input type='hidden' id='handler' name='handler' value='5534882394' />
想象一下,我通过jQuery AJAX从服务器获取HTML片段 .
<div id='result'>
<span></span>
</div>
但是,而不是写这样的东西:
$(function(){
$('#result span').text($('#handler').val());
});
我想使用类似的东西:
<div id='result'>
<span>javascript:$('#handler').val();</span>
</div>
但是,我没有得到预期的结果 . 我可以在JavaScript中使用这种方法吗?
Update: 大家好,我知道 $(document).ready();
. 那么,是否可以使用内联JavaScript,如果是的话,怎么样?
5 回答
几年前,我遇到了一个确切的问题:我使用AJAX来检索HTML,而HTML则嵌入了Javascript . 我无法找到比手动解析HTML以挖掘Javascript标记并在其内容上调用
eval
更好的解决方案 . 黑客和不可靠,但这是我能找到的最好的 .你忘记了the <script> tag吗?
不,你不能用Javascript来使用这种方法 . 没有内联Javascript这样的东西 .
您在
<a href="javascript:alert(1)">
之类的链接中看到的是javascript:
伪协议,类似于http:
协议 . 当您将浏览器指向此类URL时,浏览器将运行该脚本 .如果要在页面中运行脚本,则需要脚本标记 .
你可以做 -
当页面点击脚本标记时,页面将运行Javascript . 您必须确保已经加载了'#handler'元素,否则脚本将失败 .
一般来说,最好将这样的脚本标签远离标记 .
工作演示 - http://jsfiddle.net/ipr101/h6zXs/
虽然
<script>
标签有效并且可以让你做你想做的事情,但我真的建议你重新考虑你的设计 . 这不是你所谓的"unobtrusive Javascript" .你为什么要混用HTML和JS?如果是好奇心 - 好的,但是如果打算将其变成 生产环境 代码,那么你可能想要尽可能地将两者分开 . 最终,您将获得更好的可维护性 .