我有一个包含以下代码的JS文件。我需要从我的子aspx页面更新变量 currentIndex 的值。现在,这个js refrence在父页面上。我想知道怎么做。应该从child.aspx页面传递什么语法,以便在任何地方更新currentIndex值。
(function($, global, undefined) {
var slides, currentIndex, $container, $fragmentLinks;
var events = {
...
prev: function() {
methods.go(currentIndex-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);