UIWebView Javascript在函数调用之间保留变量值

时间:2013-01-07 16:57:51

标签: javascript ios uiwebview

我正在使用UIwebview来运行一些javascript,我希望在点击iOS原生按钮的函数调用之间保留一个变量值。

我正在使用的代码剪断。

var MyApp_SearchResultCount = 0;
var currSelected = 0;
var prevSelected = 0; 

function jump(howHigh){

    //this.prevVal = this.currentVal; 
    //this.currentVal = this.currentVal + 1; 

    //************** STARTS ****************//

    //alert(window.currSelected);

    //************** ENDS  *****************//


    prevSelected = currSelected;
    currSelected = currSelected + howHigh;
    alert("currSelected" + currSelected);
  }

currSelected始终保持为1,与调用跳转方法的次数无关。

请帮忙 谢谢 djrecker

2 个答案:

答案 0 :(得分:0)

我可以让它增加以下内容:

  1. 为其创建简单的Webview及其属性
  2. 为类型为int
  3. 的i创建属性
  4. 创建一个单击的按钮并执行以下方法
  5. 在您的情况下,增量发生在javascript代码中,但该类不知道该状态。您需要通过传递一些参数来创建动态Javascript。

    -(IBAction)runJS{ 
        NSString *javaScript = [NSString stringWithFormat:@"alert(%d)",self.i];
    
        NSString *string = [wv stringByEvaluatingJavaScriptFromString:javaScript];
    
    
        self.i=self.i+1;
    }
    

答案 1 :(得分:0)

-(IBAction)runJS{
    NSString *javaScript = [NSString stringWithFormat:@"function abcd(){var x=%i; return x;} abcd();",self.i];

    NSString *string = [wv stringByEvaluatingJavaScriptFromString:javaScript];


    self.i=self.i+1;

    NSLog(@"The returned value is %@",string);
}

你可以事实上定义一个函数并调用它或者它。函数的返回值在返回字符串中捕获。我添加了另一个答案,因为它不允许我在评论字段中正确格式化代码