0

我有一个带有以下代码的 JS 文件。我需要从我的子 aspx 页面更新变量currentIndex的值。现在这个 js 引用在父页面上。我想知道怎么做。应该从 child.aspx 页面传递什么语法以使 currentIndex 的更新值无处不在。

(function($, global, undefined) {
  var slides, currentIndex, $container, $fragmentLinks;

  var events = {
...
     prev: function() {
       methods.go(currentIndex-1);
     },
...
4

1 回答 1

1

您可以公开一个将currentIndex变量修改为全局范围的函数。但是这种方法不能很好地扩展,应该被认为是不好的做法,因为它可能会导致名称冲突和其他缺点。如何避免 JavaScript 中的全局变量?. 因此,如果您需要从子 iframe 访问父页面,您应该考虑更好的方法,例如通过消息https://stackoverflow.com/a/41566923/2138959或类似的自定义实现进行通信。

目前解决问题的最简单方法是定义一个将更新currentIndex变量的 setter 函数:

(function($, undefined) {
  var slides, currentIndex, $container, $fragmentLinks;

  window.setCurrentIndex = function(indexValue) {
    currentIndex = indexValue;
  };

  var events = {
...
     prev: function() {
       methods.go(currentIndex-1);
     },
...

如果您想将 index 设置为 value3例如,您可以这样做:

window.setCurrentIndex(3);
于 2017-03-30T13:07:44.473 回答