JavaScript中有哪些方法可以重新获得执行线程的控制权

发布于 2024-11-05 06:11:34 字数 501 浏览 4 评论 0原文

我试图枚举从浏览器到 JavaScript 代码的入口点。这包括初始脚本执行(简单的示例),以及在放弃主执行线程后重新获得主执行线程控制权的所有方法。

  • 初始脚本执行
  • 事件监听器,当不以编程方式触发时(Node.addEventListenerDOMWindow.addEventListenerXMLHttpRequest.addEventListener,所有对象。 oneventname 属性)
  • setTimeout
  • setInterval

还有其他我应该考虑的吗?

(好奇的是:这样做的目的是将所有入口点包装在 try...catch 块中,以便可以在 UIWebView 中捕获和记录 iOS 上的错误。但它应该是有用的一般信息。)

I'm trying to enumerate the entry points from the browser to JavaScript code. This includes initial script execution (the trivial example), and all ways of regaining control of the main execution thread after relinquishing it.

  • initial script execution
  • event listeners, when not fired programmatically (Node.addEventListener, DOMWindow.addEventListener, XMLHttpRequest.addEventListener, all object.oneventname attributes)
  • setTimeout
  • setInterval

Are there any others I should consider?

(For the curious: the point of this is to wrap all entry points in try...catch blocks so that catching and logging errors on iOS is possible within a UIWebView. But it ought to be useful general information to have.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼泪也成诗 2024-11-12 06:11:34

Web Worker 是另一种可以启动回调的机制。

某些浏览器在创建函数的框架的事件循环中执行跨框架函数调用。其他人对所有帧使用单个事件循环,由于同源策略,这种情况是可能的。不过我不知道iOS。

例如

window.parent.functionDefinedInParent();

Web workers are one other mechanism that can initiate callbacks.

Some browsers execute cross frame function calls in the event loop of the frame that created the function. Others use a single event loop for all frames where such a thing is possible due to the same-origin policy. I don't know about iOS though.

E.g.

window.parent.functionDefinedInParent();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文