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