fc2ブログ

テストを2件ほど

CATEGORYブログ

highlight.js をいじってて、スマホ(android 標準ブラウザ)で崩れるのに気が付いた。
どうやら、カスタムデータを設定していないときと、属性値を設定しないカスタムデータ属性を取得したときの挙動が違う。
e.dataset.<key> === undefined でカスタムデータ属性が設定されているかどうかを判定できるかと思ったんだけど……


plain only attr name has value

  カスタムデータ属性なし
<code>
値なしのカスタムデータ属性
<code data-key>
PC のブラウザ undefined 空文字列
android 標準ブラウザ 空文字列 空文字列



//  if (code.dataset.lineNumber !== undefined) {
    if (code.hasAttribute("data-line-number")) {
        attr.start_line = code.dataset.lineNumber === "" ? 1 : code.dataset.lineNumber;
    }

DOM の hasAttribute メソッドを使って判定する。
値の取得も、dataset じゃなくて getAttribute メソッド使えばええやん、って気がしなくもないが。





JSON-LD には url 属性があるので、別のページの内容を表す JSON-LD が有効なのか、とか試してみる。

JSON-LD of article 157


リッチスニッペットに反映されるタイミングがよく分からない(少なくとも、クロールされたときじゃない)けど、やっぱり駄目だよな (´・ω・`)
関連記事
スポンサーサイト



highlight.jsJSON-LDクロスブラウザ

0 Comments

Leave a comment