Foxtable(狐表)用户栏目专家坐堂 → 调用写在一个js文件里的2个函数,发现复制不成功


  共有2418人关注过本帖树形打印复制链接

主题:调用写在一个js文件里的2个函数,发现复制不成功

帅哥哟,离线,有人找我吗?
zhangjian222200
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:10849 威望:0 精华:0 注册:2016/9/12 11:18:00
调用写在一个js文件里的2个函数,发现复制不成功  发帖心情 Post By:2018/5/8 23:18:00 [只看该作者]

页面代码:
With wb.AddButtonGroup("form1","btg3",False)
            .Add("btn3s25", "复制微信", "button").Attribute= "onclick=""copyText('" & bweixh & "');ajaxform_per_tayaoqing_xqfz(15);"""  ’这里调用写在一个js文件里的2个函数,发现复制不成功
end with

js代码:
function ajaxform_per_tayaoqing_xqfz(idx){
    //alert("ok");
    document.getElementById("tadefk").value = idx
    var result = submitAjaxForm('form1','',false);
    if (result =='OK') {show('dlg1')}
    else if (result =='您可能掉线了!') {show('dlg2')}
}


function copyText(str)
   {
    if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {//区分iPhone设备
     window.getSelection().removeAllRanges();//这段代码必须放在前面否则无效
     var Url2=document.getElementById("neirong1");//要复制文字的节点
     Url2.innerHTML = str;
     var range = document.createRange();
     // 选中需要复制的节点
     range.selectNode(Url2);
     // 执行选中元素
     window.getSelection().addRange(range);
     // 执行 copy 操作
     var successful = document.execCommand('copy');

     // 移除选中的元素
     window.getSelection().removeAllRanges();
    }else{
     var Url2=document.getElementById("neirong2");//要复制文字的节点
     Url2.value = str;
     Url2.select(); // 选择对象
     document.execCommand("Copy"); // 执行浏览器复制命令
    }

    alert("复制微信成功!请加ta微信!");
   }

响应页面:
    ElseIf tadefk = 15 Then '即他的反馈等于15 '已改在前一个页面复制,这里只是保存复制状态
        dryqbh("复制微信") = "已经复制"
        dryqbh.save
        e.WriteString("复制微信成功!") 
        Return ""
    End If


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:上述代码112.txt


[此贴子已经被作者于2018/5/8 23:20:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/9 9:00:00 [只看该作者]

1、浏览器那里,有么有报错?

 

2、加入alert能否弹出?

 

3、你ajax最后return的是空白字符串,不是OK,你要注意这一点。


 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:10849 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/5/9 12:38:00 [只看该作者]

点这个按钮 .Add("btn3s25", "复制微信", "button"),截面没有任何反应

1.在微信公众号上执行的,没有提示,没有看到浏览器提示。另外,之前我把那个不提示错误的属性改为true了
2.js立面的alert("复制微信成功!请加ta微信!");没有执行

晚上测试第3条

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/9 14:15:00 [只看该作者]

1、在你电脑浏览器或者手机浏览器执行能否正常?

 

2、alert写在js的第一句或者中间,多写几句alert,看哪句代码有问题。


 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:10849 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/5/9 22:41:00 [只看该作者]

function ajaxform_per_tayaoqing_xqfz(idx){
    alert("ok-idx");
    document.getElementById("tadefk").value = idx
    var result = submitAjaxForm('form1','',false);
    if (result =='OK') {show('dlg1')}
    else if (result =='您可能掉线了!') {show('dlg2')}
}


function copyText(str)
   {
    alert("str1");
    if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {//区分iPhone设备
     window.getSelection().removeAllRanges();//这段代码必须放在前面否则无效
     var Url2=document.getElementById("neirong1");//要复制文字的节点
     Url2.innerHTML = str;

    alert("str2");
     var range = document.createRange();
     // 选中需要复制的节点
     range.selectNode(Url2);
     // 执行选中元素
     window.getSelection().addRange(range);
     // 执行 copy 操作
     var successful = document.execCommand('copy');

    alert("str2");
     // 移除选中的元素
     window.getSelection().removeAllRanges();
    }else{
    alert("str3");
     var Url2=document.getElementById("neirong2");//要复制文字的节点
    alert("str4");  //1楼代码放在服务器上,直接修改lib文件夹里面的这段js代码,直接在手机微信公众号里测试,页面正常,没有什么提示,发现这里执行str4后,之后的alert都不弹出,我是华为麦芒4手机
     Url2.value = str;
    alert("str5");
     Url2.select(); // 选择对象
    alert("str6");
     document.execCommand("Copy"); // 执行浏览器复制命令
    alert("str7");
    }
    alert("str8");
    alert("复制微信成功!请加ta微信!");
   }


刚刚测试了其他地方,使用上述js代码,就可以复制成功,估计是返回空值造成的,正在继续测试
[此贴子已经被作者于2018/5/9 23:00:01编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/9 23:15:00 [只看该作者]

以下是引用zhangjian222200在2018/5/9 22:41:00的发言:

刚刚测试了其他地方,使用上述js代码,就可以复制成功,估计是返回空值造成的,正在继续测试
[此贴子已经被作者于2018/5/9 23:00:01编辑过]

 

其它地方那里测试alert弹出什么?在微信那里alert弹出什么?

 

如果最后的alert没有弹出,就是js在微信浏览器那里不兼容造成的。

 

https://www.baidu.com/baidu?wd=%E5%BE%AE%E4%BF%A1+js+%E6%8B%B7%E8%B4%9D

 


 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:10849 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/5/9 23:25:00 [只看该作者]

页面代码:
With wb.AddButtonGroup("form1","btg3",False)
            .Add("btn3s25", "复制微信", "button").Attribute= "onclick=""copyText('" & bweixh & "');ajaxform_per_tayaoqing_xqfz(15);"""
end with

5楼最后说的是响应页面,添加了下述粉色代码

    If tadefk = 15 Then '即他的反馈等于15
        dryqbh("女生复制微信") = "已经复制"
        dryqbh.save
        e.WriteString("复制微信成功!") 
        Return ""
    End If

js代码:

function ajaxform_per_tayaoqing_xqfz(idx){
    alert("ok-idx");
    document.getElementById("tadefk").value = idx
    var result = submitAjaxForm('form1','',false);
    if (result =='OK') {show('dlg1')}
    else if (result =='您可能掉线了!') {show('dlg2')}
    else if (result =='复制微信成功!') {show('dlg3')}  //测试发现dlg对应的消息提示没有弹出,返回的消息放在这,行吗?楼上的微信浏览器复制代码需要放进js,还是写在哪?
}


function copyText(str)
   {
    alert("str1");
    if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {//区分iPhone设备
     window.getSelection().removeAllRanges();//这段代码必须放在前面否则无效
     var Url2=document.getElementById("neirong1");//要复制文字的节点
     Url2.innerHTML = str;

    alert("str2");
     var range = document.createRange();
     // 选中需要复制的节点
     range.selectNode(Url2);
     // 执行选中元素
     window.getSelection().addRange(range);
     // 执行 copy 操作
     var successful = document.execCommand('copy');

    alert("str2");
     // 移除选中的元素
     window.getSelection().removeAllRanges();
    }else{
    alert("str3");
     var Url2=document.getElementById("neirong2");//要复制文字的节点
    alert("str4");  //代码放在服务器上,直接修改lib文件夹里面的这段js代码,直接在手机微信公众号里测试,页面正常,没有什么提示,发现这里执行str4后,之后的还是alert都不弹出,我华为麦芒4手机
     Url2.value = str;
    alert("str5");
     Url2.select(); // 选择对象
    alert("str6");
     document.execCommand("Copy"); // 执行浏览器复制命令
    alert("str7");
    }
    alert("str8");
    alert("复制微信成功!请加ta微信!");
   }
[此贴子已经被作者于2018/5/10 8:53:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/10 9:14:00 [只看该作者]

如果alert(4)之后不弹出,就是这句代码有问题  Url2.value = str

 

你有叫做【neirong2】的元素吗?你页面必须有,才能引用和赋值的。


 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:10849 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/5/10 9:38:00 [只看该作者]

哦,没有neirong2元素

在可以复制的页面上,发现了如下代码
wb.InsertHTML("<div id='neirong1' style=';position: absolute;left:-200px; color: rgba(0,0,0,0);background-color: transparent'></div>")
wb.InsertHTML("<input read style='outline: none;border: 0px; color: rgba(0,0,0,0.0);position: absolute;left:-200px; background-color: transparent' id='neirong2' value=''/>")
[此贴子已经被作者于2018/5/10 9:39:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:10849 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/5/10 10:07:00 [只看该作者]

 可以了,太感谢了

 回到顶部
总数 12 1 2 下一页