如何在HTML中使用内联JavaScript?

时间:2011-08-13 13:03:58

标签: javascript jquery html inline-code

支持我有这个隐藏的字段:

<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,如果是的话,是怎么回事?

5 个答案:

答案 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'元素,否则脚本将失败。

一般来说,最好将这样的脚本标签远离标记。

工作演示 - http://jsfiddle.net/ipr101/h6zXs/

答案 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更好的解决方案。黑客和不可靠,但这是我能找到的最好的。