假设我是FakeBook™的朋友小部件的开发者.我为网站所有者提供了一个小部件,可以将这样的个性化消息添加到他们的页面:
你的朋友Michael,Anna和Shirley喜欢这个网页!
span天真地,我创建了一个脚本,将这些信息span放在网站上.但是,ExampleSite的所有者现在可以通过简单的DOM操作访问您朋友的名字!
这是一个很大的隐私/安全问题.
iframe我不希望ExampleSite访问他们朋友的名字.所以相反,我让网站所有者添加小部件iframe:
<iframe src="http://fakebook.com/friends?page=http%3A%2F%2Fexample.org%2F"></iframe>
Run Code Online (Sandbox Code Playgroud)
这样做,因为ExampleSite的所有者无法刮掉内容iframe.然而,整个iframe事情相当丑陋,因为它没有融入网站的样式,而一个span.
在昨天阅读Shadow Dom时,我想知道这是否可以解决这两个问题.这将允许我有一个脚本,创建一个span原始网站无法访问:
var host = document.querySelector('#friends');
var root = host.webkitCreateShadowRoot();
root.textContent = 'Your friends Michael, Anna and Shirley love this webpage!';
Run Code Online (Sandbox Code Playgroud)
但是,Shadow DOM是否会将其内容隐藏在周围的页面中?
这里的假设是除了我的脚本之外没有人可以访问root,但这是正确的吗?
在影子DOM规范毕竟说,它提供的功能封装,但其实我是想相信封装.虽然组件模型用例实际列出了这个用例,但我不确定Shadow DOM是否实现了nesessary confinement属性.
我不了解Chrome中工具栏API的状态.
根据2013-06-24 如何在Google Chrome中制作工具栏的答案?,chrome.experimental.infobarsChrome中有一个API,它已经准备好变成非实验性的.
但是,如果我转到API的引用网页https://developer.chrome.com/extensions/experimental.infobars.html,则会有302 Found重定向experimental.从网址中删除该部分,而API不是( /不再记录为可访问experimental,但据说只能在dev builds(Availability: Dev channel only.),http://archive.is/yydlD中使用.这是什么意思呢?
它现在总是只在开发版本中可用,或者仅仅是它被转移到非实验性的问题,即将推出的稳定版本,因此现在在开发中?
如果我想开发一个工具栏,我还可以使用chrome.experimental.infobars常规稳定的Chrome吗?在dev的代码进入稳定状态后,这会继续工作吗?
会不会有[稳定]编译或两个在何处使用既chrome.exprimental.infobars和chrome.infobars,让我一些时间来更新我的扩展?