2010-08-26 73 views
0

對於我正在處理的網站,我創建了一個嵌入函數。這只是一個調用我的服務器上的JavaScript,它在遠程服務器上注入了一些HTML。使用javascript檢查div是否存在於注入的HTML中

爲了確保嵌入也得到一些谷歌的果汁,我已經加入一段HTML,所以嵌入代碼看起來是這樣的:

<script type="text/javascript" src="http://myserver.com/myscript.js"></script> 
<div id="embedSource">Source: <a href="myserver.com">mysite.com</a></div> 

可以很容易地與源中刪除最後一個div來自嵌入代碼。所以我想我只是在第一個「myscript.js」中添加一個檢測腳本來檢測ID爲「embedSource」的div的存在。

問題是:JavaScript總是先執行,然後div被添加到DOM,並且沒有辦法可以先添加embedSource div。

我試着用檢查:

window.onload = CheckIfEmbedCodeIsComplete(); 

但這一事件被觸發早期(鉻,FF和IE)。即使對於大多數瀏覽器來說,它應該是完美的(對吧?)。 也試過:

setTimeOut(CheckIfEmbedCodeIsComplete(), 5000); 

但同樣,檢查被立即調用,而不是5秒後你所期望的。

我該怎麼做才能檢查該div是否存在?

回答

0

要回答我的問題,我不得不超時通話改成這樣:

setTimeout('CheckIfEmbedCodeIsComplete()', 5000); 
1

您需要編寫一個onload函數才能執行腳本。可以找到解決方案here

我不知道這是否重要,但如果您計劃將多個對象嵌入到網站中,則需要使用類。 (具有相同標識的多個元素是不可能的。)

+0

謝謝,我應該補充說,我曾嘗試類似的東西,問題已更新!是的,我有適當的地方添加唯一的ID,謝謝! – sebastiaan 2010-08-26 15:30:17

0

將您的腳本移出標題並在</body>結束之前標記。

<body> 
    <div id="embedSource">Source: <a href="myserver.com">mysite.com</a></div> 
    ... 
    ... 
    <script type="text/javascript" src="http://myserver.com/myscript.js"></script> 
</body> 

The page will load quicker,和DOM將加載,所以你必須訪問的元素。

+0

對不起,原問題中所述不可能。 – sebastiaan 2010-08-27 07:12:05