如何从子aspx页面更新JS文件中的变量

时间:2017-03-30 11:40:20

标签: javascript jquery deck.js

我有一个包含以下代码的JS文件。我需要从我的子aspx页面更新变量 currentIndex 的值。现在,这个js refrence在父页面上。我想知道怎么做。应该从child.aspx页面传递什么语法,以便在任何地方更新currentIndex值。

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

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

1 个答案:

答案 0 :(得分:0)

您可以公开一个将currentIndex变量修改为全局范围的函数。但是这种方法不能很好地扩展,应该被认为是不好的做法,因为它可能导致名称冲突和其他缺点。 How to avoid global variables in 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);
     },
...

如果你想将索引设置为值3,例如你可以这样做:

window.setCurrentIndex(3);