我正在开发一个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