我将多个 UIWebView
并排放置到一个 UIScrollView
中。每个 UIWebView
都包含一个显示本地 HTML 文件的“网络浏览器” View 。不幸的是,我不知道如何在后台加载 web View ,同时防止或停止执行包含在 HTML 文件中的 JavaScript 函数。我的意思是“在后台”,因为我观看了前几个面板,与此同时,其余面板只是静默地延迟加载。我看到不同的应用程序(如 pugpig)这样做 - 它延迟加载 HTML 页面并停止 JavaScript 动画 - 它可以以某种方式停止 JavaScript 以动画化我在标签切换之间和此刻在我的 HTML 页面中经常使用的整个淡入淡出效果我加载面板它继续淡入淡出动画。
所以,问题是:
如何使用 Objective-C 代码暂停 JavaScript 动画并防止内存问题,以及如何在显示面板后继续淡入淡出动画?
最佳答案
您是否尝试过注入(inject)观察 onblur
的 JavaScript(即 - (NSString*) stringByEvaluatingJavaScriptFromString: (NSString *)script)和 onfocus
的 window
, 或 pageshow
和 pagehide
? This post为此提出了几个解决方案。
所以,你可以尝试类似的东西
$(window).blur(function(){
// when the web view loses focus
});
$(window).focus(function(){
// when the web view gains focus
});
如果失败,您可以尝试 pagehide
和 pageshow
事件:
function pageShown(evt)
{
if (evt.persisted)
// The page was just restored from the Page Cache
else
// The initial load. This is the same as the page load event
}
function pageHidden(evt)
{
if (evt.persisted)
// The page was suspended and placed into the Page Cache
else
// This is the same as the page unload event
}
window.addEventListener("pageshow", pageShown, false);
window.addEventListener("pagehide", pageHidden, false);
关于javascript - 在 UIWebView 中暂停 JavaScript 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8946990/