-1

2 つの UIWebView を使用するアプリを作成しています。そのうちの 1 つで、Web ページから JavaScript を取り除いてロードします (ページの表示速度を速くするため)。もう 1 つはバックグラウンドで JavaScript を使用してページ全体を読み込み、完了したら他の UIWebView を置き換えます。JavaScript を使用したページには、いくつかのバナーが追加され、ページが大きくなります。

ユーザーが他の WebView にいたのと同じ場所 (要素) に UIWebView を自動的にスクロールさせようとしています。私は(document.elementFromPointを使用して)javascriptを介してこれを実行しようとしましたが、要素を他のUIWebViewに渡す方法が見つかりません(可能かどうかはわかりません)。Id属性がないため、Idを介して要素を見つけることができません。

ある UIWebView から別の UIWebView に要素を変数として渡す方法はありますか? またはこれを行う別の方法はありますか?

4

3 に答える 3

0

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)scriptパラメータの受け渡しに使用できます。

javascriptメソッドは文字列を返すことができ、その文字列は上記のメソッドによって返されます。複数の値のデータをJSON形式で返すことができ、JSONパーサーを使用して解析できます。または、単に文字列を返すこともできます。その文字列/JSONデータをさらに使用できます。

値を渡すには、次のコードを参照してください。

NSString *jsPrintBodyOfTable=[[NSString alloc]initWithFormat:@”printBodyOfTable((\”%@\”))”, content.at_content];

 [self.webView stringByEvaluatingJavaScriptFromString:jsPrintHeadOfTable];

http://howtomakeitinamsterdam.wordpress.com/2011/12/17/uiwebview-calling-javascript-from-ios-with-passing-parameters-tutorial/の簡単なチュートリアル

于 2012-06-15T07:14:46.380 に答える
0

ある UIWebView から別の UIWebView に単純に渡すことはできません。

ただし、独自のプロトコルを定義してデータを URL として渡す場合は、ネイティブ環境にデータを渡すことができます。その後、別の Web ビューで Javascript を抽出して実行し、データを挿入できます。

URL のキャッチはwebView:shouldStartLoadWithRequest:navigationType:UIWebViewDelegate プロトコルを実装するクラスで行うことができ、Javascript の実行stringByEvaluatingJavaScriptFromString:は UIWebView インスタンスで行うことができます。

ソースコードを見ると、これは PhoneGap/Cordova で行われていることです。

于 2012-06-15T07:18:24.473 に答える
0

探しているものである DOM プロパティがあるscrollYので、最初の Web ビューで取得できます。

NSString* scrollPosition = [webView1 stringByEvaluatingJavaScriptFromString: @"scrollY"];

次に、2番目のスクロールを行います。

[webView2 stringByEvaluatingJavaScriptFromString:
     [NSString stringWithFormat: @"window.scrollTo(0, %d);", scrollPosition]];
于 2012-06-15T07:21:23.633 に答える