今天发生了一件奇怪的事情,它正在测试我正在开发的一个网站:我试图用jquery访问iframe中的元素,令我惊讶的是我能够访问它们并修改它们。令人惊讶的是,因为iframe不在同一个域中,因此我不应该为“同源策略”做到这一点(或者我错了?)。使用jQuery查看iframe内容后使用浏览器
问题是,它只能在用浏览器“检查”任何iframe的元素之后才能完成(本例中为chrome)。如果稍后我“检查”不在iframe内的任何网站元素,那么我将失去该“超级大国”并获得预期结果,即由于“同源策略”而不允许jquery访问。
问题: 1.-这是否应该发生? 2.-如果它可能暗示安全风险,是否有办法阻止它? 3.-如果这是假设发生,是安全的,我怎么能jQuery的“模拟”浏览器的“检查”,让我能访问内部框架元素和修改它们
你在控制台上运行jQuery吗? –
是的,所描述的测试是来自Chrome的控制台 – Roberto
在控制台中,您可以选择希望运行JavaScript的帧级别。因此,您可以在页面内的任何iframe中运行jQuery,而不考虑源。如果您确定您在* top *框架中运行JavaScript,并从那里访问不同的原始iframe,那么这将意想不到(我必须自己尝试复制它以收集更多信息)。 –