もし修正後も動作しない場合:の続きです
もし修正後も動作しない場合:
要素のセレクタの確認: Kintoneのプロセス管理機能のステータス表示の場合、単にspan[title=“承認”]では要素が取得できないことがあります。KintoneのDOM構造は複雑なため、モバイルとPCで異なる場合もあります。
PCでKintoneのレコード詳細画面を開き、開発者ツール(F12キー)で「承認」や「差戻」の要素を右クリックし、「検証」を選択して、そのHTML構造を確認してください。
title属性以外に、特定のクラス名やdata-属性など、より一意に特定できるセレクタがないか確認し、document.querySelector()の引数を調整してみてください。
例えば、プロセス管理のステータスラベルであれば、document.querySelector(‘.kintone-app-record-process-status-label[title=“承認”]’) のようになるかもしれません。
更に聞いてあって...@住田 さまのおっしゃるのと被るかと思いますが...
このJavaScriptがモバイルで動作しない主な原因は、前回の修正で指摘したカラーコードの閉じクォーテーションの欠落が最も可能性が高いです。
現在のkintone-mobile-fix
のコードは、この構文エラーを修正済みです。
しかし、もし修正後も動作しないのであれば、以下の点が考えられます。
このJavaScriptがモバイルで動作しない主な原因は、前回の修正で指摘したカラーコードの閉じクォーテーションの欠落が最も可能性が高いです。
現在のkintone-mobile-fixのコードは、この構文エラーを修正済みです。
しかし、もし修正後も動作しないのであれば、以下の点が考えられます。
- KintoneのDOM構造の確認が必須です
Kintoneの画面要素は、PCとモバイル、またはアプリの設定(特にプロセス管理のステータス表示など)によってHTMLの構造が異なる場合があります。span[title=“承認”]というセレクタが、実際にモバイル画面上の「承認」や「差戻」の要素と一致していない可能性があります。
確認方法:
1.モバイルエミュレーションを使用: PCのChromeブラウザでKintoneのモバイルレコード詳細画面を開きます。
2.開発者ツールを開く: F12キーを押すか、右クリックして「検証」を選択します。
3.モバイル表示に切り替える: 開発者ツールの上部にあるモバイルアイコン(デバイスツールバーの切り替え)をクリックして、モバイル表示に切り替えます。
4.要素の検証: 画面上の「承認」や「差戻」と表示されている部分を右クリックし、「検証」を選択します。
5.HTML構造を確認: 開発者ツールのElementsタブで、選択された要素とその親要素のHTML構造を注意深く確認してください。
<span>
タグであるか?
title
属性が本当に「承認」や「差戻」になっているか?
- 他に、その要素を特定できるユニークなクラス名やID、またはデータ属性(例:
data-cy="approval-button"
のようなもの)がないか?
2. セレクタの調整
確認したHTML構造に基づいて、document.querySelector()
のセレクタをより正確なものに調整する必要があります。
例:
JavaScript
const el1 = document.querySelector('.some-kintone-class[title="承認"]');
もしtitle属性ではなく、別の属性(例: data-value)を使っている場合:
JavaScript
const el1 = document.querySelector('span[data-value="承認"]');
プロセス管理のステータスラベルの場合、Kintoneが提供する特定のクラス名があることが多いです。例えば、コメントにも記載したように:
JavaScript
const el1 = document.querySelector('.kintone-app-record-process-status-label[title="承認"]');
このJavaScriptがモバイルで動作しない主な原因は、前回の修正で指摘したカラーコードの閉じクォーテーションの欠落が最も可能性が高いです。
現在のkintone-mobile-fixのコードは、この構文エラーを修正済みです。
しかし、もし修正後も動作しないのであれば、以下の点が考えられます。
- KintoneのDOM構造の確認が必須です
Kintoneの画面要素は、PCとモバイル、またはアプリの設定(特にプロセス管理のステータス表示など)によってHTMLの構造が異なる場合があります。span[title=“承認”]というセレクタが、実際にモバイル画面上の「承認」や「差戻」の要素と一致していない可能性があります。
確認方法:
モバイルエミュレーションを使用: PCのChromeブラウザでKintoneのモバイルレコード詳細画面を開きます。
開発者ツールを開く: F12キーを押すか、右クリックして「検証」を選択します。
モバイル表示に切り替える: 開発者ツールの上部にあるモバイルアイコン(デバイスツールバーの切り替え)をクリックして、モバイル表示に切り替えます。
要素の検証: 画面上の「承認」や「差戻」と表示されている部分を右クリックし、「検証」を選択します。
HTML構造を確認: 開発者ツールのElementsタブで、選択された要素とその親要素のHTML構造を注意深く確認してください。
<span>
タグであるか?
title
属性が本当に「承認」や「差戻」になっているか?
- 他に、その要素を特定できるユニークなクラス名やID、またはデータ属性(例:
data-cy="approval-button"
のようなもの)がないか?
- セレクタの調整
確認したHTML構造に基づいて、document.querySelector()のセレクタをより正確なものに調整する必要があります。
例:
もし要素に特定のクラス名がある場合:
JavaScript
const el1 = document.querySelector('.some-kintone-class[title="承認"]');
const el1 = document.querySelector(‘.some-kintone-class[title=“承認”]’);
もしtitle属性ではなく、別の属性(例: data-value)を使っている場合:
JavaScript
const el1 = document.querySelector('span[data-value="承認"]');
const el1 = document.querySelector(‘span[data-value=“承認”]’);
プロセス管理のステータスラベルの場合、Kintoneが提供する特定のクラス名があることが多いです。例えば、コメントにも記載したように:
JavaScript
const el1 = document.querySelector('.kintone-app-record-process-status-label[title="承認"]');
- console.logの出力確認
コードに含まれているconsole.logの出力は、デバッグに非常に役立ちます。
「Kintone mobile record detail show event fired.」が表示されているか?
表示されていれば、イベント自体は正しく発火しています。
「Element with title “承認” not found.」のようなメッセージが表示されているか?
このメッセージが表示されていれば、document.querySelectorが目的の要素を見つけられていないことを意味します。この場合、セレクタの修正が必要です。
まとめ
最も重要なのは、実際に動作しているKintoneモバイル画面のHTML構造を開発者ツールで確認し、それに基づいてdocument.querySelector
のセレクタを修正することです。これが問題解決への一番の近道となります。