簡體   English   中英

window.dispatchEvent 在 Firefox、Safari 或 IE 中不起作用

[英]window.dispatchEvent doesn't work in Firefox, Safari or IE

我需要強制調整瀏覽器窗口的大小,因為承諾會在非常寬的元素上破壞 IScroll(問題是如果承諾成功,我會使用承諾來更改寬度)。 IScroll 在 promise 完成之前加載並從原始元素中獲取 with。 結果是我只能滾動到原始元素寬度,而不是承諾加載的更寬元素的新寬度。 如果我手動調整瀏覽器窗口的大小,則可以滾動完整大小。

我通過在 promise 加載后更改 IScroll 的maxScrollXscrollerWidth解決這個問題,但我也使用了一個不會一直滾動的指示器。

我嘗試使用window.dispatchEvent(new Event('resize'));解決這個問題window.dispatchEvent(new Event('resize')); 強制調整窗口大小。 我的問題是這在 Chrome 中運行良好,但在 Firefox、Safari 和 IE 中完全中斷了滾動。 是否有其他方法可以強制調整與所有瀏覽器兼容的窗口大小?

我嘗試了以下瀏覽器,但不起作用:

  • Safari 5.1.4 (734.54.16)
  • 火狐 45.0.2
  • 邊緣 25.10586.0.0

我終於自己找到了答案:

$timeout(function() {
    var evt = $window.document.createEvent('UIEvents'); 
    evt.initUIEvent('resize', true, false, $window, 0); 
    $window.dispatchEvent(evt);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM