我正在開發一個iOS的自定義webview,當選擇網頁上的某些元素時,應該給用戶特殊的選擇,因此我擴展了UIWebview,並將我自己的按鈕添加到sharedMenuController。由於所顯示的頁面是由xml使用xsl構成的,所以在某些標籤中有額外的數據,例如從UIWebview檢索HTML標籤使用
<p data-type="MC"><img src="annotation.png"></p>
當選擇圖像時,sharedMenuController彈出,並且如果我按下動作按鈕,我想接收包含IMG標籤的標籤。問題是,使用window.getSelection()。innerHTML.toString()給我一個空字符串和window.getSelection()。getRangeAt(0).commonAncestorContainer.innerHTML.toString()應該是什麼p標籤,給我整個html。
這是我的課:
@implementation UICustomWebView
+ (void)initialize
{
[super initialize];
UIMenuItem *itemA = [[UIMenuItem alloc] initWithTitle:@"Action" action:@selector(a:)];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObjects:itemA, nil]];
}
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(defineSelection:))
{
return YES;
}
else if (action == @selector(translateSelection:))
{
return YES;
}
else if (action == @selector(copy:))
{
return NO;
}
else if (action == @selector(a:))
{
return YES;
}
return [super canPerformAction:action withSender:sender];
}
-(void) a:(id)sender
{
NSLog(@"a %@", [self stringByEvaluatingJavaScriptFromString:@"window.getSelection().getRangeAt(0).commonAncestorContainer.innerHTML.toString()"]);
}
@end
沒有這個給整個html文件? 編輯:只是檢查它,就像我說的,給整個文件 – Andy