HTML 错误:无权限访问属性 ‘target’

HTML 错误:无权限访问属性 ‘target’

在本文中,我们将了解错误“无权限访问属性 ‘target’”。

元素 ‘target’ 返回已调用事件的元素。这个错误可以发生在任何属性上,不仅仅是’target’属性。例如,同样的错误也可能发生在 ‘document’ 上。这个错误发生在传递的对象不遵循该网站的同源策略时。在Google Chrome和Firefox中,这个错误会作为 DOMException 发生,在Safari中作为安全错误发生。

同源策略规定,如果文件和资源具有相同的协议和主机,则它们可以在服务器之间共享。

这个错误主要是由 < iframe>标签引起的,该标签用于从第三方获取数据,这违反了同源策略,因为同源策略基于安全原因限制了第三方的使用。

要解决这个问题,可以删除使用的 < iframe>标签,也可以添加 Access-Control-Allow-Origin

示例1:此示例创建了同源错误,最终导致“无权限访问属性 ‘target’”。不同的浏览器可能会给出不同的错误,但意思是相同的。

HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
     
    <iframe
        id="myframe" src=
"https://www.geeksforgeeks.org/">
    </iframe>
    <script>
        onload = function () {
            console.log(frames[0].target);
            // Error: Permission denied to access property "target"
        };
    </script>
</head>
<body></body>
</html>

输出:

HTML 错误:无权限访问属性 'target'

注意: 简单地通过删除 < iframe>标签或在服务器端添加 Access-Control-Allow-Origin 来解决错误。

示例2: 在这个示例中,我们只是移除了 < iframe>标签。你可能会想,如果你运行下面的代码,错误是否仍然发生,但错误出现是因为你没有声明任何事件,浏览器无法读取‘target’的属性,但实际上这个可用的错误已经被移除了。你可以简单地定义一个事件来解决它。

HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
    <script>
        onload = function () {
            console.log(frames[0].target);
        };
    </script>
</head>
<body></body>
</html>

输出:
HTML 错误:无权限访问属性 'target'

注意: 很多时候,即使在代码中没有iframe,错误仍然存在。你对此无能为力,因为这可能是浏览器方面的错误,如果存在的话,很快就会得到解决。例如,在Firefox 54.0版本发布时,就出现了这个错误,但是开发人员后来修复了它,现在在最新的Firefox 105.0.3版本中不存在这样的问题。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程