好吧,所以基本問題是設置div元素的innerHTML,我的字符串中的任何html標記在除Firefox之外的所有主流瀏覽器中都被剝離(而不是顯示)。現在對於catch來說,當頁面第一次加載時不會發生,它只發生在部分回發(除非它的Firefox,然後它總是有效)。使用Javascript的innerHTML的問題
我試圖運行一個腳本(實際上是通過ScriptManager創建並從代碼後面添加的)來爲某些已有的html元素添加一些html元素(帶有事件處理程序)。我知道腳本始終在運行,即使在我遇到問題時也是如此,因爲我可以對現有元素的html進行覈對或設置一些文本。我甚至可以使用文本和標記,但標記不會在文本顯示時顯示,除非文本位於標記內。所以:
someElement.innerHTML = 「等等等等等等」 - 作品
someElement.innerHTML = 「<br/><br/>Blah blah blah<br/><br/>
」
等等等等等等顯示,但沒有休息
someElement.innerHTML = 「<p>This will disappear</p><div>So will this</div>
」
所有這些文字都會隨標記一起消失。哦,我看着做這個'標準'的方式,即document.createElement等,但我有完全相同的問題。
如果你需要/想知道其他任何問題。
編輯:當我說主要的瀏覽器,特別是我的意思是:Safari瀏覽器4.0.3,Chrome瀏覽器3.0.195.27,和IE 8.0.6
完整的JavaScript(有關此功能)。如果有格式錯誤是因爲這實際上是C#中的一個字符串,所以出現了一堆時髦的逃脫廢話,我試圖刪除爲清晰起見。
var overflowEls = getElementsByClass("descriptionBox");
for (var i = 0; i < overflowEls.length; i++)
{
if (checkOverflow(overflowEls[i]))
{
var html = overflowEls[i].innerHTML;
overflowEls[i].innerHTML = overflowEls[i].innerHTML = "<div class="videoFeedDescriptionButtons" onclick="expand(this);">+</div><br/><div onclick="collapse(this);" class="videoFeedDescriptionButtons">-</div>" + html;
}
}
周圍的HTML,牢記它正從YouTube的Feed提取,然後由.NET Repeater控件生成:
<td valign="top" style="margin: 5px 5px 5px 5px;height:auto;">
<div class="descriptionBox" style="max-height:100px; overflow:hidden;" >
<b>
THE WORLDS BIGGEST PLANES!! by kieran smith</b><br />
<br />
by Antonov (ASTC). It was designed for the Soviet space program as a replacement for the Myasishchev M-4 'Bison' for the purpose of carrying the Energia rocket boosters and to also be able to carry the Buran space shuttle in piggy-back mode much the same as the American Shuttle Carrier Aircraft.The An-225 first flew on 21 December, 1988. Only one An-225 is currently in service. It is commercially available for carrying ultra heavy and/or oversize freight. It can carry up to 227 metric ...<br />
</div>
<a id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_lnView" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$Repeater1$ctl01 $lnView','')">View</a> <a id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_lnAdd"
href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$Repeater1$ctl01$lnAdd','')">Add</a>
<br />
你確定你沒有腳本運行插入後,即清除div或將其替換爲無。如果您在插入後直接添加警報(someElement.innerHTML)(或者更好的FF上的console.log),那麼它會顯示什麼? – robjmills 2009-10-15 22:56:42
請顯示代碼。 – 2009-10-15 22:57:59
你可以發佈「someElement」在裏面的周圍的HTML嗎? – 2009-10-15 22:58:03