Firefox在iframe内锚点的h​​ref评估javascript

时间:2015-09-02 10:00:17

标签: javascript firefox iframe

我试图在点击iframe中的按钮后评估一些javascript。该按钮是一个链接,javascript在该链接的href中进行评估。在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 个答案:

答案 0 :(得分:1)

如果出现以下情况,则会出现此行为:

  1. 您使用旧版且不受支持的Firefox版本(需要年满32岁)。
  2. 您的<a>标记所在的子帧与顶部窗口不同。
  3. 在这种情况下,由于链接定位_top,因此脚本无法在该顶层窗口中运行(这将是同源策略违规)。因此,它会在沙盒中运行,沙盒中没有任何类型的DOM对象,但具有标准的JavaScript对象(ArrayObject等等。)

    在较新的Firefox版本中,脚本在这种情况下根本无法运行,因此您无法获得未捕获的异常,但它也不会做任何事情。