首页 文章

如何在HTML中使用内联JavaScript?

提问于
浏览
7

支持我有这个隐藏的领域:

<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 回答

  • 2

    几年前,我遇到了一个确切的问题:我使用AJAX来检索HTML,而HTML则嵌入了Javascript . 我无法找到比手动解析HTML以挖掘Javascript标记并在其内容上调用 eval 更好的解决方案 . 黑客和不可靠,但这是我能找到的最好的 .

  • 1

    你忘记了the <script> tag吗?

    <div id="result"></div>
    <script>$('#result').text($('#handler').val();</script>
    
  • 12

    不,你不能用Javascript来使用这种方法 . 没有内联Javascript这样的东西 .

    您在 <a href="javascript:alert(1)"> 之类的链接中看到的是 javascript: 伪协议,类似于 http: 协议 . 当您将浏览器指向此类URL时,浏览器将运行该脚本 .

    如果要在页面中运行脚本,则需要脚本标记 .

  • 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/

  • 6

    虽然 <script> 标签有效并且可以让你做你想做的事情,但我真的建议你重新考虑你的设计 . 这不是你所谓的"unobtrusive Javascript" .

    你为什么要混用HTML和JS?如果是好奇心 - 好的,但是如果打算将其变成 生产环境 代码,那么你可能想要尽可能地将两者分开 . 最终,您将获得更好的可维护性 .

相关问题