只是一个想法,但会使用IFRAME
而不是DIV
本质上使该元素与窗口隔离,以减缓在IFRAME
中运行的脚本不会影响其他框架/窗口的方式?iFrame隔离
Q
iFrame隔离
2
A
回答
7
是的,对于第一部分,iframe将“排序”将窗口与iframe中的脚本隔离。但是,父窗口仍然可以通过window.parent
访问。
对于第二部分:不,它不会使iframe中的脚本太慢,不会影响其他框架/窗口。您的主窗口对象及其子节点都运行在同一个线程中。 JavaScript是单线程的[在这种情况下忽略webworkers,无论如何你都不能传递dom元素],所以你可以访问父窗口/子iframe的窗口对象的唯一原因是因为它们在同一个线程中。
为了提供一个简单的例子:
- 创建一个名为main.html中
- 在该网页页面,有一个IFRAME
src="iframe.html"
- 旁边的iframe,有你想要的任何文本的按钮,我不在乎。
- In iframe.html,
window.onload = function(){ while(1){} };
- 访问iframe.html。您会注意到,当您将鼠标光标放在按钮上时,它不会响应/重绘。这是因为浏览器被冻结。
来源:
我也尝试过这样的多线程。深知这一点=)
1
在新的浏览器可以使用沙箱属性的iframe从页面的其余部分
相关问题
- 1. 安全隔离的iFrame?另类?
- 2. 完全隔离来自同一个域的iframe中的javascript
- 3. AppDomain隔离
- 4. Postgres SCHEMA隔离
- 5. 隔离存储
- 6. 隔离存储
- 7. C#TPL - 隔离?
- 8. 隔离预期
- 9. 隔离森林
- 10. 隔离行
- 11. 隔离范围
- 12. MySQL事务隔离
- 13. Java的隔离绳
- 14. 隔离林实施
- 15. FTP用户隔离
- 16. PHP:数组隔离
- 17. 隔离CSS代码
- 18. 隔离CSS范围
- 19. java.sql.Connection隔离级别
- 20. 如何隔离Div
- 21. 从隔离储存
- 22. javascript隔离字符
- 23. P2P隔离防护
- 24. mysql隔离级别
- 25. Wcf隔离实例
- 26. TSQL快照隔离
- 27. “控制器为”与隔离范围内的指令不隔离
- 28. Qt C++隔离键盘
- 29. SET事务隔离级别
- 30. 单元测试 - 隔离
哈哈伟大的回答,非常感谢隔离。我让我走向死路一条。 – Louis 2010-04-20 06:42:58
正确答案,尽管一个小小的评论; “但是,父窗口仍然可以通过window.parent访问”仅当父级和子级(iframe)在同一个域上时才是正确的。如果它们不是,那么由于“相同来源策略”,您确实可以将iframe视为沙箱环境。 – futtta 2010-04-20 11:46:17