支持我有这个隐藏的字段:
<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中使用这种方法吗?
更新:请大家,我知道$(document).ready();
。所以,不要提供更好的方法。我只是想知道是否可以使用内联JavaScript,如果是的话,是怎么回事?
答案 0 :(得分:12)
不,你不能用Javascript来使用这种方法。没有内联Javascript这样的东西。
您在<a href="javascript:alert(1)">
之类的链接中看到的是javascript:
伪协议,与http:
协议类似。当您将浏览器指向此类URL时,浏览器将运行该脚本。
如果要在页面中运行脚本,则需要脚本标记。
答案 1 :(得分:6)
你可以做 -
<input type="text" id="handler" value="yes"/>
<div id='result'>
<span>
<script>document.write($('#handler').val());</script>
</span>
</div>
页面会在点击脚本标记时运行Javascript。您必须确保已经加载了'#handler'元素,否则脚本将失败。
一般来说,最好将这样的脚本标签远离标记。
答案 2 :(得分:6)
虽然<script>
代码可以正常运行并且可以让您按照自己的意愿行事,但我建议您重新考虑您的设计。这不是你所谓的“不引人注目的Javascript”。
为什么你最好混合使用HTML和JS?如果是好奇心 - 好的,但如果打算将其变成生产代码,那么你可能想要尽可能地将两者分开。最终,您将获得更好的可维护性。
答案 3 :(得分:2)
你忘记了the <script>
tag吗?
<div id="result"></div>
<script>$('#result').text($('#handler').val();</script>
答案 4 :(得分:1)
几年前,我遇到了一个确切的问题:我使用AJAX检索HTML并且HTML嵌入了Javascript。我无法找到比手动解析HTML以挖掘Javascript标记并在其内容上调用eval
更好的解决方案。黑客和不可靠,但这是我能找到的最好的。