ポップアップ ブロッカーの回避策として、colorbox を使用して、surveymonkey に埋め込まれたアンケートを表示しています。調査を完了してサイトに戻るまで、すべてが完璧に機能します。カラーボックスが再びポップアップし、コンテンツが表示されません。スクリプトタグ間にデータがないことを確認してから閉じるか、コンテンツがある場合にのみ表示する方法を見つける必要があります。調査が完了する前と後の両方で、ページで firebug を使用しました。
前:
<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 を開くことはありません。スクリプトを実行し、チェックしてから、その周りでカラーボックスを実行する方法の提案はありますか?