【问题标题】:I need colorbox to close when the external script is empty当外部脚本为空时,我需要关闭颜色框
【发布时间】:2014-01-29 16:22:04
【问题描述】:

我正在使用 colorbox 来显示一个surveymonkey 嵌入式调查,作为弹出窗口阻止程序的解决方法。一切正常,直到他们完成调查并返回现场。颜色框再次弹出,不显示任何内容。我需要找到一种方法来验证脚本标签之间没有数据,然后将其关闭或仅在有内容时才显示它。我在页面上使用了萤火虫,在他们调查完成之前和之后:

之前:

<script src="https://www.surveymonkey.com/jsPop.aspx?sm=4GSXwWYQ306AtiO3hP45Jg_3d_3d">
 document.write("<iframe id=\"sm_e_s\" src=\"https://www.surveymonkey.com/s.aspx?sm=4GSXwWYQ306AtiO3hP45Jg%3d%3d\" width=\"500\" height=\"1000\" style=\"border:0px;padding-bottom:4px;\" frameborder=\"0\" allowtransparency=\"true\" ><a href=\"https://www.surveymonkey.com/s.aspx?sm=4GSXwWYQ306AtiO3hP45Jg%3d%3d\">Please take our survey</a></iframe></script>");if(document.getElementById('surveyMonkeyInfo')) {document.getElementById('surveyMonkeyInfo').style.width='500px';document.getElementById('surveyMonkeyInfo').style.fontSize='10px';document.getElementById('surveyMonkeyInfo').style.color='#666';}
</script>
<iframe id="sm_e_s" height="1000" frameborder="0" width="500" allowtransparency="true" style="border:0px;padding-bottom:4px;" src="https://www.surveymonkey.com/s.aspx?sm=4GSXwWYQ306AtiO3hP45Jg%3d%3d">
</iframe>

(我省略了一些 iFrame 脚本,因为它非常冗长且不必要)

之后:

<script src="https://www.surveymonkey.com/jsPop.aspx?sm=4GSXwWYQ306AtiO3hP45Jg_3d_3d">
</script> 

似乎应该有一个简单的解决方案,但我只是看不到我的手指!

编辑: 这是 HEAD 中的内容,如果我能找到一种方法来检查脚本标签中是否有任何内容,那么我可以阻止颜色框在开始时加载:

    <link rel="stylesheet" href="/colorbox/colorbox.css" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="/colorbox/jquery.colorbox-min.js"></script>
    <script>
        jQuery(document).ready(function () {
        $(".inline").colorbox({inline:true, href:"#inline_content", open:true,});
        });

    </script>

编辑2: 我又回来了!所以 JRods 的建议有助于在脚本标签为空时阻止颜色框运行(这正是我所要求的,所以谢谢!)但我从未考虑过脚本何时运行的层次结构。如果我们在执行之前检查标签是否为空,那么它们将始终为空,因此颜色框永远不会打开 #inline_content 。有没有人建议一种方法来运行脚本,检查它,然后围绕它运行颜色框?

【问题讨论】:

标签: javascript jquery iframe colorbox surveymonkey


【解决方案1】:

给你的脚本标签一个唯一的ID。

<script id="myscript" src="https://www.surveymonkey.com/jsPop.aspx?sm=4GSXwWYQ306AtiO3hP45Jg_3d_3d">
</script> 

那你可以用jquery的html()length看看标签里面有没有东西

<script>
    jQuery(document).ready(function () {
        if ( $('#myscript').html().length !== 0 ) {
            $(".inline").colorbox({inline:true, href:"#inline_content", open:true,});
        }
    });
</script>

【讨论】:

  • 感谢 JRod!起初它对我不起作用,然后我意识到我在脚本标签之间有一个空格!我删除了它,它起作用了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多