MDN Web Docs 里有这么一段话:
Window.close() 方法关闭当前窗口或某个指定的窗口。
该方法只能由 Window.open() 方法打开的窗口的 window 对象来调用。如果一个窗口不是由脚本打开的,那么,在调用该方法时,JavaScript 控制台会出现类似下面的错误:不能使用脚本关闭一个不是由脚本打开的窗口。
或Scripts may not close windows that were not opened by script.
。
所以,解决方法就是,在 家乡.html 里也创建一个 button,使用 window.open 方法返回“我的主页”:
<input type="button" value="返回我的主页" onclick="window.open('我的主页.html')"/>
打开超链接然后返回windows 事件就失焦了 可以饭后后重新刷新一下页面
遇到类似的问题,可以尝试以下解决方案:
检查HTML代码,确保关闭链接的target
属性被正确设置。有时候,如果目标标签被设置为#
或其他无效字符,程序会崩溃。可以尝试使用正确的标签或将目标标签设置为_blank
来解决问题。
确认程序没有添加额外的错误代码或注释。可以查看程序的源代码或调试器,以查找任何错误或异常。
尝试在程序中添加额外的代码来处理超链接。例如,可以在程序中添加一个额外的步骤来检查链接的目标标签是否正确设置,或者可以在链接被点击时执行额外的操作来确保程序正确地关闭。
以下是一个可能的解决问题的示例代码:
<h2>关闭链接</h2>
<a href="#" target="_blank" rel="noopener noreferrer">关闭</a>
def on_close(event):
# 检查目标标签是否正确设置
if event.target.href.startswith('http') and event.target.href.endswith('https'):
# 检查链接是否为加密链接
if event.target.headers.get('User-Agent') != 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3':
event.target.href = event.target.href.replace('http', 'https')
event.target.click()
return
# 检查链接是否为加密链接
else:
# 执行其他操作
print(f'链接为加密链接,无法执行操作')
# 检查目标标签是否为<img>
else:
# 执行其他操作
print(f'目标标签为<img>,无法执行操作')
event.target.click()
以上代码将检查链接的目标标签是否为<a>
或<img>
,如果是,则执行on_close
函数中的代码。如果目标标签不是这些类型,则将链接点击并执行其他操作。
难搞啊