我想知道是否有人可以给出使用空白HTML表单操作回发到当前页面的"最佳实践"响应.
有一篇帖子询问这里有一个空白的HTML表单动作,有些像这样的页面表明它很好,但我想知道人们的想法.
我需要在我的网站上提供用户提交的脚本(有点像jsfiddle).我希望脚本能够以安全的方式在访问者浏览器上运行,与它们所服务的页面隔离.由于代码是由用户提交的,因此无法保证它是值得信赖的.
现在我可以想到三个选择:
top.location.href例如,改变,这是不太理想的.http://jsfiddle.net/PzkUw/上面有其他解决方案或建议吗?
更新
如果,正如我怀疑的那样,第一个选项是最佳解决方案,除了更改顶部窗口位置之外,恶意脚本可以做什么,以及如何防止这种情况?我可以操纵或拒绝基于静态代码分析某些脚本,但是这是很难给出对象可以被访问的方式的数量和总的难度分析JavaScript的静态.至少,它需要一个完整的解析器和一些复杂的规则(一些,但我怀疑不是所有,其中存在于JSLint中).
许多站点都有类似下面的脚本.这些都是为了阻止其他人构建网站.
if (top.location != location) {
top.location.href = document.location.href;
}
Run Code Online (Sandbox Code Playgroud)
我需要一些方法来实现iframe尝试重定向,如果是,我将删除iFrame,而是放置一个链接到该网站.这样,我不违反框架网站的使用政策,也链接到该网站.我知道你可以使用这里和这里讨论过的onbeforeunload事件,但两者看起来都是不道德的.我记得在某个地方读过一个完全相同的东西(digg做同样的事情).任何线索?
我正在嵌入具有退出弹出窗口的页面.关闭页面时,它会自动启动弹出窗口.
如何在退出时禁用来自iframe的弹出式窗口?
我看看这两个问题,我不明白.
一方面,你似乎可以重定向父iframe,另一方面你不能重定向?当我尝试它时,我没有问题重定向父框架所以我很好奇为什么每个人都说你不能重定向父框架,除非你在同一个域.但我可以重定向,而不会在同一个域上有框架.
如前所述,将重定向父iframe.要记住的一件事是网站和iframe中包含的网站都需要在同一个域上才能工作,否则您将获得访问被拒绝的异常.
它与浏览器有关吗?
编辑
我有两页,这有效,但不应该:
在域1上
<html>
<body>
<iframe src="http://domain2.fr"></iframe>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在域2上
<html>
<body>
<script type="text/javascript">
window.top.location.href = "http://google.fr";
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在做一些简单的Web集成工作,我正在通过使用iframe来完成.我的主窗口有一些javascript,它与我的服务器交互,将iframe重定向到所需的URL.其中一个目标页面遗憾地包含以下代码:
if (top.location != location) {
top.location.href = document.location.href ;
}
Run Code Online (Sandbox Code Playgroud)
该脚本因跨站点限制而死亡,并阻止该页面正确呈现.我无法修改该页面的来源(我正在整合的第三方).
我怎么能解决这个问题?
谢谢
我最近注意到"出于安全原因"堆栈溢出不允许框架.
1)这是怎么做到的?(不是特定情况!我的意思是技术/语言等,出于某种原因,我猜是js)
2)它实际上是避免它还是仅仅是警告(有点像客户端验证)
3)是否应该这样做或者是否有特定的理由这样做,并且在大多数情况下不是必要的(这是我第一次见到它)
提前致谢!!!
我正在为我的应用程序编写一个简单的类似灯箱的插件,我需要嵌入一个链接到任意页面的iframe.问题是,许多网站(例如,facebook,nytimes,甚至stackoverflow)将检查是否嵌入在一个框架内,如果是,将刷新页面本身作为父页面.这是一个众所周知的问题,我认为没有什么可以做的.但是,如果网站支持嵌入或不支持,我希望能够事先知道.如果没有,我想在新的标签/窗口中打开页面,而不是使用iframe.
有没有一个技巧可以让我在javascript中检查这个?
也许有一个服务器端脚本可以检查链接,看看他们是否允许iframe嵌入?
我正在开发一个浏览器扩展,所以有机会做一些非常有创意的事情.我的扩展程序已加载到每个页面上,所以我认为有一种方法可以在iframe网址中传递一个参数,如果它破坏iframe,则可以通过扩展程序获取该参数.然后,我可以将域添加到不支持iframe嵌入的网站列表中.这可能有效,因为扩展未在iframe中加载.我将继续努力,但与此同时......
澄清:
我愿意接受没有办法"破坏""框架破坏者",即我知道我不能在iframe中显示一个不想在一个页面中的页面.但我希望我的应用程序优雅地失败,这意味着如果不支持iframe嵌入,则在新窗口中打开链接.理想情况下,我想检查iframe在运行时嵌入支持(javascript),但我可以看到使用代理的潜在服务器端解决方案,如上面的评论中所建议的那样.希望我能建立一个不允许嵌入iframe的网站数据库.
我知道框架比Iframes要实现更多的打字工作,并且它们需要比Iframe更多的样式.我目前正在开发一个网站,该网站必须从其他网站下载一些内容(实际上是一整套网页),当然这取决于用户在主网站上的操作.iframe似乎是实现这一要求的一种简短而粗暴的方式,但我担心的是性能和完整性.
当满足以下条件时,我想就我更愿意使用的内容提出一些建议:
一个奇迹男人的想法?