gpt4 book ai didi

javascript - Firefox 对 iframe 内 anchor 的 href 中的 javascript 进行评估

转载 作者:行者123 更新时间:2023-12-03 08:59:38 25 4
gpt4 key购买 nike

我正在尝试在单击 iframe 中的按钮后评估一些 javascript。该按钮是一个链接,并且 javascript 在该链接的 href 中进行评估。评估 href 中的 js 不是我的选择,但我无权访问任何其他属性,因为它是 SSRS 报告。然而,似乎在 iframe 按钮的范围内没有定义环境变量,没有控制台,没有文档,甚至没有 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 版本中,在这种情况下脚本根本不会运行,因此您不会遇到未捕获的异常,但它也不会执行任何操作。

关于javascript - Firefox 对 iframe 内 anchor 的 href 中的 javascript 进行评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32350144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com