2009-04-17 15 views
4

私は、loadHTMLStringを通じてHTMLの文字列をUIWebViewにロードしています。それは非常に長いWebページを生成します。その文字列がロードされたら、 "name"属性が設定されたHTMLアンカータグに移動する必要があります。 HTMLの場合、次のようになります。HTMLアンカーを参照するには?

//3 pages of text here 
<a name="go here"></a> lots more text here 
//another 3 pages of text here 

一度読み込まれると「ここに行く」までスクロールするにはウェブページが必要です。ユーザーがWebページ内のリンクをクリックして外部URLを読み込むと、マッピングは正常に機能します。しかし、この場合、最初に読み込まれたWebページを下にスクロールする必要があります。

私はまだこのようにJavaScriptを実行することができます

[MyWebView loadHTMLString:dataString baseURL:[NSURL URLWithString:@"http://www.myscheme.com"]]; 
[webView stringByEvaluatingJavaScriptFromString:@"javascriptFunc('param1');"]; 

しかし、私はアンカータグにナビゲートするための同様のものが必要。助言がありますか?

答えて

10

すでにロードされたHTMLファイル内のアンカーにジャンプすることができます実行して...とにかく、それのほとんどをキャッシュしておく必要があります。

[webView stringByEvaluatingJavaScriptFromString:@"window.location.hash='#foo'"]; 

が、これはジャンプを行います、サンセリフアニメーションを。

1

私は間違っていない場合は、ちょうど#は、URLの末尾

EDIT%の20hereを行く追加:ああ、あなたがロードされ、すでに意味。ページをリロードするだけで本当に問題はありませんか?ブラウザは

+0

Nope。再読み込みしたくありません。上記のjavascriptメソッドをlocation.hash = "#myAnchor"という値で使用するとうまくいきます。 UIWebViewのwebViewDidFinishLoadに追加します。 – 4thSpace

関連する問題