搜索
aardio官方社区 门户 查看主题

webkit中html父节点执行全局js函数,子节点就不能执行其他函数,why?

发布者: dsp2138 | 发布时间: 2018-1-10 20:08| 查看数: 163| 评论数: 2|帖子模式

本帖最后由 dsp2138 于 2018-1-10 20:13 编辑

webkit中html父节点执行arrdio函数,子节点就不能执行其他函数。如HTML代码如下
  1.                 <div class="title-bar" onmousedown="windowCommand('drag')"><span class="left_arrow"  onclick="goback()"><i class="layui-icon">&#xe65c;</i></span><span class="title">网易云音乐</span></div>
复制代码

定义接口定义网页脚本可调用的本地函数
  1. wbKitView.external = {

  2.     aardioCall = function(str){
  3.         mainForm.msgbox(str);
  4.     };
  5.     goback=function(){
  6.         js=/*
  7.                     alert("goback");
  8.                     */
  9.             wbKitView.doScript(js);
  10.            
  11.     }
  12.    
  13. }
复制代码

预定义全局JS函数

  1. import web.kit;
  2. namespace web.kit.jsFunction{};

  3. //预定义全局JS函数
  4. ..web.kit.jsBindFunction("windowCommand",1,function(cmd){
  5.     var wbKitView = owner;
  6.     var winform = wbKitView.getForm();

  7.     select(cmd) {
  8.             case "min" {
  9.                     winform.hitmin();
  10.             }
  11.             case "max" {
  12.                     return winform.hitmax();
  13.             }
  14.             case "close" {
  15.                     return winform.close();
  16.             }
  17.             case "drag" {
  18.                     return winform.hitCaption()
  19.             }
  20.     }
  21. })

  22. ..web.kit.jsBindFunction("goBack",1,function(){
  23.     var wbKitView = owner;
  24. //    wbKitView.goBack();
  25.         var jscode=/*
  26.                     alert("goback1");
  27.                     */
  28.     wbKitView.doScript(jscode);
  29. })
复制代码

父栏目中拖动时可以执行windowCommand('drag'),但再在子节点中执行onclick="javascript:external.goback()或者goBack(),都没法跳出alert警告窗口。请问是什么原因。该怎么解决?谢谢

最新评论

Jacen.He 发表于 2018-1-11 00:58:19
这个跟webkit没啥关系,
onmousedown先于onclick执行,这样设计当然是先触发onmousedown,onclick执行不了。

你可以在子节点加上 onmousedown="event.stopPropagation();"
不过没有必要搞这么麻烦,你把他们分开放就可以了。

这类问题,可以直接搜索javascript有关的教程。
vikon 发表于 2018-1-11 09:09:37
这种叫html dom机制里面的事件捕获与冒泡,默认的事件绑定应该都是冒泡的过程.  因为在windowCommand的那个div是包住那个goback的span的, 所以按理解理说,应该会先执行了goback再执行windowCommand. 至于alert不出来会不会是windowCommand做了什么特殊的.
所以处理方法就如楼上管理员所说的两种.

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-1-20 18:37 , Processed in 0.062500 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表