2010-10-04 42 views
0

我想從後面的C#代碼中觸發onresize事件。我認爲這是可以與以跨瀏覽器兼容方式觸發onresize

Page.clientScript.RegisterScriptBlock(this.getType(), "id", "javascript code"); 

做我都試過element.onresize(),但它似乎在Firefox工作。觸發類似於以下jQuery的onresize事件的正確方法是什麼?

$("body").trigger("resize"); 

使用jQuery本身不是一個選項。

回答

6

這應該做的伎倆,DOM Level 2,不知道這是否適用於IE6 ,怪癖模式仍然沒有這方面的信息:

if (document.createEvent) { 
    var e = document.createEvent('HTMLEvents'); 
    e.initEvent('resize', true, false); 
    document.body.dispatchEvent(e); 

} else if (document.createEventObject) { 
    document.body.fireEvent('onresize'); 
} 

在FF,Chrome和Opera測試。

+0

http://jsfiddle.net/EhLgB/2/在IE8中不起作用,這看起來似乎是IE8的東西 – Raynos 2010-12-14 19:48:29

+0

更新了一些IE特定的代碼。 – 2010-12-14 19:54:46

+0

IE特定的黑客作品! – Raynos 2010-12-14 19:58:19

-1

使用本$(window).resize();

//舊的答案(在FF,鉻,IE8測試),失敗的FF document.body.onresize()

+0

在Firefox中不存在。拋出一個typeerror – Raynos 2010-10-06 09:10:36

+0

使用jQuery不適合我。這需要在整個websit中一般工作,而不依賴於包含jQuery。 – Raynos 2010-10-06 10:59:11