【问题标题】:html() strips script tags in fancybox (jQuery) ajax callhtml() 在 fancybox (jQuery) ajax 调用中去除脚本标签
【发布时间】:2010-12-03 10:04:52
【问题描述】:

我的问题与这些问题非常相似:

但这是一个特殊情况,它们都不适合我。
我正在使用fancybox (1.3.4) jQuery 插件来显示返回 HTML 字符串的 ajax 调用的结果。 HTML 字符串包含一个带有jQuery 行的ajax 表单,由于html() 函数,这些行没有输出。我尝试将其替换为innerHTML(实际上与html() 相同)或将标签替换为其他人然后更新它,但没有任何效果。
如果您想确切地知道发生这种情况的位置,那就是265在 fancybox JS 文件中。

有什么办法解决这个问题吗?


干杯,
尼古拉斯。


编辑: 包含<script>标签的ajax检索代码示例:

<div class="ddinline">
    <form id="form542612422" onsubmit="return false;" update="searchbtn" position="before" method="post" action="/Librariescategories/AJAXGetChildrenList" accept-charset="utf-8">
        <div style="display:none;">
            <input type="hidden" name="_method" value="POST" />
        </div>
        <script type="text/javascript">
        //<![CDATA[
        $('#form542612422').bind('submit', function(){ $.ajax({async:true, type:'post', beforeSend:function(request) {$("#filter .ddinline").last().after('<img src="/img/loading.gif" id="catload" alt="" />');}, complete:function(request, json) {$('#searchbtn').before(request.responseText); $("#catload").remove(); createDropDown($("#filter .fulldrop").last());}, data:$('#form542612422').serialize(), url:'/Librariescategories/AJAXGetChildrenList'}) })
        //]]>
        </script>
        <select name="data[Librariescategories][id]" class="fulldrop" id="LibrariescategoriesId">
            <option value="0" selected="selected">select</option>
            <option value="1">3D Models</option>
            <option value="259">Imagery</option>
            <option value="362">Textures</option>
       </select>
       <div class="hide">
           <input type="submit" value="Submit" />
       </div>
    </form>
</div>

【问题讨论】:

  • 你能粘贴一个 HTML 代码的例子,用脚本,你通过 ajax 检索?

标签: jquery html ajax tags fancybox


【解决方案1】:

我认为您可能需要分别添加脚本和 html 内容。您可以通过网络发送由令牌连接的标记和脚本。通过客户端上的 javascript 将它们拆分。然后将 html 添加到 fancybox 元素中。该脚本可能需要添加到 fancybox 元素之外。以下是如何将 html 和脚本添加到同一元素中的示例:

http://jsbin.com/otage3/2/edit

希望这会有所帮助。

鲍勃

【讨论】:

  • 嗨 Bob,这是个好主意,但实际上我使用的是 cakePHP,并且 JavaScript 是由视图中的 AJAX 助手自动生成的,所以我看不到任何将它与 HTML 分开的方法。此外,我不能对生成的代码使用“标准”语法,因为表单 ID 是在 AJAX 帮助程序代码期间自动生成的。干杯。
  • 或者我可以通过正则表达式提取 JS 代码并尝试将其插入父文档中的其他位置。我不确定这是否可能,但我会试一试。
  • 你的主意不错!我将我的字符串分成两部分:一个带有常规 HTML,另一个带有 JS,然后我插入 HTML 并将 JS 附加到 fancybox-content 包装中,就像您在示例中所做的那样。干杯!
猜你喜欢
  • 2011-05-04
  • 2011-08-27
  • 2012-10-19
  • 2011-04-21
  • 1970-01-01
  • 2018-06-22
  • 2011-03-11
  • 2017-03-06
  • 1970-01-01
相关资源
最近更新 更多