2016-09-20 45 views
0

我有了3幀框架:如何檢查框架的框架存在

<frameset rows="124, *, 0"> 
    <frame id="f1" scrolling="No" frameborder="0" src="" name="control"> 
    <frame id="f2" frameborder="0" src="" name="main"> 
    <frame id="f3" noresize frameborder="0" name="go"> 
</frameset> 

我要檢查是否有ID框架=「F2」存在嗎?

我曾嘗試:

<script> 
if(document.getElementById("f2").contentDocument.documentElement.innerHTML !== null) { 
alert('ok'); 
} 
</script> 

但沒有奏效。 我知道我應該這樣做:

document.getElementById("f2") 

,但需要更多的信息

+0

你所說的 「存在」 是什麼意思?如果元素存在於DOM中?如果加載頁面的內容? – Dekel

+0

我想通過檢查是否存在id =「f2」來防止html注入?或被用戶刪除:) @Dekel –

+0

框架已從HTML 5中刪除。請勿使用它們。 –

回答

3

嗯 - 其實你應該做的是隻檢查是否document.getElementById("f2")一些回報,但爲了這個工作,你必須將你的文檔的DOCTYPE到框架:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> 

否則瀏覽器將無法識別框架,它不會返回任何東西。

檢查此琴:
https://jsfiddle.net/b8xg9y8u/

+0

你是個聰明的孩子。謝謝。 –

+1

不客氣:)很高興我能幫忙! – Dekel

1

的document.getElementById()返回null如果元素不存在,那麼表達式將是假的,要麼加!在開始時,或在else情況下添加代碼

if (!document.getElementById("f2")) { 
} 

if (document.getElementById("f2")) { 
} else { 

} 
+0

document.getElementById(「f2」)無法訪問框架集內部。 –