我正在做一些與Pipeline Pilot的工作,並注意到所有內置的HTML組件都可以執行某些操作,比如可摺疊面板,選項卡或其他可能存在一些我無法訪問的JavaScript會導致我否則會使WebGL組件在加載時中斷。沙箱WebGL插件
有沒有一種方法可以「沙盒」或以其他方式隔離WebGL組件以進行自己的保護?奇怪的問題,而不是最好的看待它的方式,但我不能改變WebGL組件內部的任何代碼,並且我不能更改任何內部Pipeline Pilot代碼,所以我需要一個不合理的解決方案任何一種。
我正在做一些與Pipeline Pilot的工作,並注意到所有內置的HTML組件都可以執行某些操作,比如可摺疊面板,選項卡或其他可能存在一些我無法訪問的JavaScript會導致我否則會使WebGL組件在加載時中斷。沙箱WebGL插件
有沒有一種方法可以「沙盒」或以其他方式隔離WebGL組件以進行自己的保護?奇怪的問題,而不是最好的看待它的方式,但我不能改變WebGL組件內部的任何代碼,並且我不能更改任何內部Pipeline Pilot代碼,所以我需要一個不合理的解決方案任何一種。
@David說過,使用iframe可能會做你想做的。在這種徒勞的,你可以發現,如果你在一個iframe是與
var isInIFrame = function() {
return window != window.top;
};
我使用了我的變化CSS取決於如果我在iframe我還是不
var updateCSSIfInIFrame = function() {
if (isInIFrame()) {
document.body.className = "iframe";
}
};
那麼我可以用CSS來改變格式。例如:
/* only applies if in an iframe assuming the function above was called. */
body.iframe {
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
overflow: hidden;
}
.iframe>canvas {
width: 100%;
height: 100%;
}
說實話,我很難理解你的確切問題,但是如果你想要沙箱的HTML去去的地方是結合外部域。通過在不同的域上託管相關內容,跨域策略可以完全對兩種環境進行沙盒處理。另一種選擇是在HTML5中使用標記的屬性,但由於它尚未得到完全支持,我實際上不會提供此建議。
謝謝。這可能*會做這項工作。考慮到我在應用程序框架和WebGL組件中幾乎不能訪問底層的JavaScript,很難將其表達爲一個連貫的問題。我認爲它值得一試。 – Illumin8s 2014-08-29 00:51:53
謝謝,當我再次訪問代碼時,我會給這個鏡頭。 – Illumin8s 2014-08-31 16:31:19