2014-01-29 21 views
1

我使用colorbox來顯示surveymonkey嵌入式調查,作爲彈出窗口攔截器的解決方法。一切工作完美,直到他們完成調查並返回網站。該colorbox彈出再次顯示沒有內容。我需要找到一種方法來驗證腳本標記之間沒有數據,然後關閉它或只有在有內容時才顯示它。我用螢火蟲在頁面上之前和他們調查後完成:當外部腳本爲空時,我需要關閉colorbox

前:

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

這似乎應該有一個簡單的解決方案,但我只是不能看到把我的手指!

編輯: 這裏是什麼在頭上,如果我能想出檢查是否有腳本標記內的任何的一種方式,那麼我可能會阻止加載顏色框開頭:

<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的建議有助於在腳本標籤爲空時停止運行colorbox(這正是我所要求的,所以謝謝你!),但我從來沒有考慮腳本運行時的層次結構。如果我們在執行之前檢查標籤是否爲空,那麼它們將始終爲空,因此colorbox將永遠不會打開#inline_content。有沒有人有一種方法來運行腳本的建議,檢查它,然後在它周圍運行colorbox?

+0

裏的任何東西,你可以做一個小提琴? – Jrod

+0

我似乎有一個艱難的一天。我的小提琴似乎也喜歡我: http://jsfiddle.net/j7C6W/2/ 繼承人的現場網站地址,與您的建議註釋了測試: http://www.wtrrentals.com/indexTEST2。 shtml –

回答

2

給你的腳本標籤一個唯一的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> 
+0

謝謝JRod!起初它沒有爲我工作,然後我意識到我有腳本標籤之間的空間!我刪除它,它的工作! –

相關問題