Javascript-相等的函数的行为方式不同

问题描述

如果在html中单击了test.jpg(鼠标左键),

对于代码1 :在新标签页中将打开一个空白页面。 (不好的结果)

代码2 :在新标签中打开test.jpg页面。 (好)


代码1 :使用了opek.window(等于打开到open.window)

<script>
window.opek = function(x,y,z){window.open(x,z)}

function onlyyou(url){
var NowWindow=window.opek('','_blank','')
NowWindow.document.write('<img src='+url+'>')
}

</script>

<img src="test.jpg" onclick="onlyyou(this.src)">

代码2 :使用open.window

<script>
window.opek = function(x,z)}

function onlyyou(url){
var NowWindow=window.open('','')
NowWindow.document.write('<img src='+url+'>')
}

</script>

<img src="test.jpg" onclick="onlyyou(this.src)">

对我来说, window.opek 等于 window.open

但是为什么代码1 的行为方式不同?

实际上,我创建了一个包含window.open的函数。创建的函数无法正常工作。因此,我进行了深入研究,甚至找出了一个功能(至少对我而言)看起来完全相同(至少对我而言)的功能无法以相同的方式工作。

解决方法

这是因为在您的代码1 中,您没有返回window对象返回。将您的功能更新为返回新窗口,它将起作用:

<script>
  window.opek = function(x,y,z){ return window.open(x,z); }

  function onlyyou(url){
    var NowWindow=window.opek('','_blank','')
    NowWindow.document.write('<img src='+url+'>')
  }

</script>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...