Skip to content

UIWebViewでリンクをタップした時のハイライトカラーを消す

2013年2月14日

HighChartでグラフを出した時にチカチカするから消したかった。

あのハイライトを消すには、どうやらCSSを描かなければいけないらしい。
が、HTML一個一個にそんな野入れてくなんて面倒な真似したくない。

なのでJSで書き込んでしまうのが良い模様。

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    // タップ次のハイライトを消す
    NSString *js = @"var styleNode = document.createElement('style');\n"
    "styleNode.type = 'text/css';\n"
    "var styleText = document.createTextNode('* {-webkit-tap-highlight-color:rgba(0,0,0,0)}');\n"
    "styleNode.appendChild(styleText);\n"
    "document.getElementsByTagName('head')[0].appendChild(styleNode);\n";

    [webView stringByEvaluatingJavaScriptFromString:js];
}

ポイントはCSSのターゲットを「*」にすること。
aとかだと効かなかった。問答無用で全部のハイライト消してやればよしということで。

参考:http://stackoverflow.com/questions/11845217/remove-uiwebview-href-grey-selection

広告

From → iPhone開発

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。