繁体   English   中英

Firefox对iframe中锚点的href中的javascript的评估

[英]Firefox evaluation of javascript in href of anchor inside an iframe

我尝试在iframe中单击按钮后评估一些JavaScript。 该按钮是一个链接,并且该链接的href中评估了javascript。 我不是选择在href中评估js,但我无权访问任何其他属性,因为它是SSRS报告。 但是,似乎没有在iframe按钮的范围内定义任何环境变量,没有console甚至没有document甚至self 当我直接打开iframe报表而不是在iframe内时,按钮js的范围包括所有重要的环境变量。 我附上了按钮的代码。

<a tabindex="1" href="javascript:eval%20(%20%20%20%20%20unescape%20%20%20%20%20('self')%20)" style="text-decoration:none;" target="_top"><img onload="this.fitproportional=true;this.pv=0;this.ph=0;" src="/ReportServer/Reserved.ReportViewerWebControl.axd?ExecutionID=cgj2rc55ffw43k45lk0yk055&amp;Culture=2057&amp;CultureOverrides=False&amp;UICulture=9&amp;UICultureOverrides=False&amp;ReportStack=1&amp;ControlID=faa6cce17cd640bf8ebe1f6af602c84b&amp;OpType=ReportImage&amp;IterationId=62c2cb36498248bf8b8b9e784a09d4b8&amp;StreamID=68b4d5bd-b6bf-4d8a-8ad4-b254b9e67c56" border="0" height="35" width="93"></a>

请记住,这是在iframe中,然后才出现问题。 上面产生了

uncaught exception: ReferenceError: self is not defined

在以下情况下,您会收到此行为:

  1. 您使用的是旧版本且不受支持的Firefox版本(必须为32或更早版本)。
  2. 您的<a>标记所在的子帧与顶部窗口的来源不同。

在这种情况下,由于链接的目标是_top ,因此脚本不能仅在该顶级窗口中运行(这将是同源策略违反)。 因此,它可以在没有任何DOM对象但具有标准JavaScript对象( ArrayObject等)的沙箱中运行。

在较新的Firefox版本中,该脚本在这种情况下根本无法运行,因此您不会遇到未捕获的异常,但也不会执行任何操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM