一个js里的函数的retur值想返回另一个js的变量值,应该怎么写?

一个js里的函数的retur值想返回另一个js的变量值,应该怎么写?
这是一个微信号自动更换的代码,有有台批量添加微信号,然后把代码植入推广落地页里面

步骤1.把下面代码拷贝到网页和标签之间

<script type="text/javascript" > weixin="默认微信" </script> <script type="text/javascript" src="http://weixin.wecat.top/api/weixin/getwechat.html?webid=d3e9e54f9cb1a793bef84cc21a2778f2"> </script>

<script type="text/javascript"> document.write(weixin); </script>(这个就可以在落地页显示随机读取的微信号)

但是还有一个按钮,就是点击这个按钮会自动复制这个微信号,然后自动跳到微信界面。问题就出现在复制的这个微信号,读取不了上面的变量“weixin”的值。

落地页点击按钮的代码如下:

<button class="jump_btn" style="width: 90%;background: #1AAD19;text-align: center;border:none;color: #fff;margin: 0 auto;box-sizing: border-box;font-size: 18px;line-height: 2.55555556;border-radius: 5px;display: block;text-decoration: none;">点击打开微信添加<img src="{pboot:sitetplpath}/html/img/dj.png"></button><br />
      <div align="center"><img src="{pboot:sitetplpath}/html/img/ydtz.gif" width="90%"></div>
      
      <script>    function jumpweixin()
        {if (!/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent) && / baiduboxapp/i.test(navigator.userAgent)) { window.location.replace("bdbox://utils?action=sendIntent&minver=7.4&params=%7B%22intent%22%3A%22weixin://%23wechat_redirect%23Intent%3Bend%22%7D");
        }
        else{ window.location.replace("weixin://");
        }
        }
        var clipboard = new ClipboardJS(".jump_btn", {text: function () {return "weixin这里只能返回字符串weiixn,并不是weixin的变量的值";}} ); clipboard.on( "success", function ( e ) {jumpweixin(); } ); clipboard.on( "error", function ( e ) { window.location.replace("weixin://");                   console.log( e ); } );        
      </script>

请教怎么写上面的return后面的变量,才能让他返回的值跟上面的 document.write(weixin); 返回的一样呢。

参考GPT:要在一个 JavaScript 函数中返回另一个 JavaScript 文件中的变量值,需要在第一个 JavaScript 文件中通过 window 对象将该变量声明为全局变量。这样,第二个 JavaScript 文件就可以通过 window 对象访问这个全局变量。

在你的代码中,要使 weixin 变量在 jumpweixin() 函数中可用,可以将 weixin 声明为全局变量。具体做法是,把以下代码:

<script type="text/javascript" > weixin="默认微信" </script>

改为:

<script type="text/javascript"> window.weixin = "默认微信"; </script>


这将会将 weixin 变量绑定到 window 对象上,从而使它成为全局变量。然后,在 clipboard 对象的 text 属性中,你可以使用 window.weixin 来引用这个变量的值,如下所示:

var clipboard = new ClipboardJS(".jump_btn", {
  text: function () {
    return window.weixin;
  }
});


现在,当用户单击“点击打开微信添加”按钮时,会将 weixin 的值复制到剪贴板中,并在复制成功后执行 jumpweixin() 函数。在 jumpweixin() 函数中,你可以通过 window.weixin 来获取这个值,并执行相应的操作。

注意,由于微信在 iOS 系统上有一些限制,所以需要进行一些特殊的处理。在你的代码中已经包含了这些处理,因此你不需要进行任何修改。

首先,你可以在js中把weixin的值放复制按钮的属性 data-clipboard-text中:

<script type="text/javascript" > weixin="默认微信" </script> <script type="text/javascript" src="http://weixin.wecat.top/api/weixin/getwechat.html?webid=d3e9e54f9cb1a793bef84cc21a2778f2"> </script>
 
<script type="text/javascript">
 document.write(weixin); 
 document.getElementById('btn_id').attr('data-clipboard-text',weixin);

</script>(这个就可以在落地页显示随机读取的微信号)

给复制按钮添加一个id


<button id="btn_id" data-clipboard-text="" .................其它代码和你之前的一样

最后在js中点击按钮复制:

<script>
    var clipboard = new ClipboardJS(document.getElementById('btn1'));

    clipboard.on('success', function(e) {
        alert("复制成功!");
        e.clearSelection();
        jumpweixin();
    });

    clipboard.on('error', function(e) {
        alert("复制失败,按 Ctrl+C 复制文字。");
        window.location.replace("weixin://");                 
        console.log( e ); 
    });
</script>

基于bing、GPT部分内容和本人思考总结:
可以在点击按钮时,调用一个函数来获取变量 weixin 的值,并将其作为复制的文本内容。可以将获取变量 weixin 的代码放在一个单独的 js 文件中,然后在落地页中引用这个 js 文件。代码如下:
在网页中引用 js 文件:

plaintext
Copy code
<script src="weixin.js"></script>

weixin.js 文件中的代码:

javascript
Copy code
var weixin = "默认微信"; // 定义变量 weixin
function getWeixin() {
  return weixin; // 返回变量 weixin 的值
}

落地页中点击按钮的代码:

html
Copy code
<button class="jump_btn" onclick="copyWeixin()" ...>点击打开微信添加</button>

在复制文本时,调用 getWeixin 函数来获取变量 weixin 的值,然后将其作为复制的文本内容。修改落地页中的 clipboard 变量的定义,代码如下:

javascript
Copy code
var clipboard = new ClipboardJS(".jump_btn", {
  text: function() {
    return getWeixin(); // 返回 getWeixin 函数的返回值,即变量 weixin 的值
  }
});

这样就能够在复制微信号时,正确地获取变量 weixin 的值了。

该回答引用于gpt与OKX安生共同编写:
  • 该回答引用于gpt与OKX安生共同编写:

要让跨文件的变量传递,有多种方法:

1.在全局作用域下定义变量:把weixin的赋值放在全局作用域下。这样就可通过document.write(weixin)获取页面上当前weixin的值。例如:



<script type="text/javascript">
window.weixin = "默认微信";
</script>
<script type="text/javascript" src="http://weixin.wecat.top/api/weixin/getwechat.html?webid=d3e9e54f9cb1a793bef84cc21a2778f2"></script>
<script type="text/javascript">document.write(weixin);</script>

然后,当您执行 clipboard.on( "success", ...) 回调函数时,可以通过 window.weixin 获取微信号。

2.在函数内定义变量: 把weixin的赋值放在函数内。这样就可在当前函数内获取当前weixin的值,例如:




function jumpweixin(){
  var weixin = "默认微信";
  // do something
  return weixin;    //返回当前的微信号
}

然后,当您执行clipboard.on("success", ...)回调函数时,可以通过jumpweixin()获取当前微信号。

请注意,在这两种方法中,如果两个 JavaScript 代码块不在同一个域,比如一个是在 HTML 页面里,另一个是远程加载的脚本,那么方法1是可以用的,因为全局变量在整个页面上都是可见的,但方法2只适用于单个 JavaScript 作用域内的操作。

有用的话,还请采纳哦~