首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何隔离网页中的部件,使一个部件不会影响其他部件?

如何隔离网页中的部件,使一个部件不会影响其他部件?
EN

Stack Overflow用户
提问于 2016-11-03 13:26:13
回答 1查看 227关注 0票数 0

我正在管理一个项目,其中开发是由多个开发人员在一个网页的不同部分工作。由于副作用,我们在组合网页的各个部分时面临集成问题。

如果web部件有错误、编写不当或被web筛选器阻止,则会影响网页其他部分的呈现。

有没有一种方法可以干净利落地划分网页?

我的研究只指出了共享点web部件,而没有针对这个问题的方法或框架。IFrame Isolation是相关的,但该解决方案类似于在圆孔中放置方形钉子。

EN

回答 1

Stack Overflow用户

发布于 2016-11-16 07:51:31

如果web部件有错误、编写不当或被web筛选阻止,则会影响网页其他部分的呈现。

使用try/catch块:

代码语言:javascript
复制
window.addEventListener("error", function(e){return false;}, true);
try{angular.run();}
catch(e){console.log(e.toString() )};
$("body").append("<div>Hi</div>");
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

或者延迟加载:

代码语言:javascript
复制
void(function foo()
  {
  /* get head element */
  var head = document.getElementsByTagName("head")[0];

  /* create script element */
  var jQueryJS = document.createElement("script");


  /* define script src attribute to lazy load */
  jQueryJS.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js";

  /* append script */
  head.appendChild(jQueryJS);


  /* call tests after jQuery loads */
  jQueryJS.onload = function () 
    {
    $("body").append("<h1>Hi</h1>");
    }
  }() 
);

其他方法包括:

支持

  • HTML5沙箱/CSP的安全architecture
  • TreeHouse: web工作人员沙箱architecture
  • JSand: Secure ECMAScript(SES)-enabled沙箱architecture
  • ADSafe:虚拟iframes

参考

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40394407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档