Javascript 如何从子aspx页面更新JS文件中的变量
我有一个JS文件和下面的代码。我需要从我的子aspx页面更新变量currentIndex的值。现在,这个js引用位于父页面上。我想知道怎么做。应该从child.aspx页面传递什么语法以使currentIndex的更新值无处不在Javascript 如何从子aspx页面更新JS文件中的变量,javascript,jquery,deck.js,Javascript,Jquery,Deck.js,我有一个JS文件和下面的代码。我需要从我的子aspx页面更新变量currentIndex的值。现在,这个js引用位于父页面上。我想知道怎么做。应该从child.aspx页面传递什么语法以使currentIndex的更新值无处不在 (function($, global, undefined) { var slides, currentIndex, $container, $fragmentLinks; var events = { ... prev: function() {
(function($, global, undefined) {
var slides, currentIndex, $container, $fragmentLinks;
var events = {
...
prev: function() {
methods.go(currentIndex-1);
},
...
您可以公开一个函数,将
currentIndex
变量修改为全局范围。但这种方法不能很好地扩展,应该被视为不好的做法,因为它可能导致名称冲突和其他负面影响。所以,如果您需要从子iFrame访问父页面,您应该考虑更好的方法,比如通过消息通信或类似的自定义实现
目前,解决问题的最简单方法是定义一个setter函数,该函数将更新currentIndex
变量:
(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);
嗨,Andrii,它说无法设置未定义或null的属性“setCurrentIndex”reference@AnkitKumar,我假设您将窗口作为全局函数传递给包装器函数。我已经更新了我的答案。