一時的な解決策として、デフォルトでトグルボタンを有効にしたい場合は、このスクリプトをテーマに追加できます(私はそれを <body> の下に配置しました)。このスクリプトは、AI検索結果の変更を検出し、AI結果を有効にトグルします。これは最もクリーンなコードではありません。@awesomerobot には、よりエレガントな方法があるかもしれません。
<script type="text/javascript">
// THIS SCRIPT IS TO ENABLE THE TOGGLE TO INCLUDE SEARCH RESULTS FROM AI AFTER THE SEARCH IS COMPLETE - DELETE ONCE THERE IS A NATIVE OPTION TO ENABLE THIS BY DEFAULT
console.log('スクリプトがロードされました。.semantic-search__searching の変更を継続的に監視し、オブザーバーを管理します。');
let searchObserver = null; // オブザーバーインスタンスを保持する変数
function observeSearchContainer() {
const searchStatusContainer = document.querySelector('.semantic-search__searching');
if (searchStatusContainer) {
// コンテナが見つかった場合
if (!searchObserver) {
// オブザーバーがまだ実行されていない場合は開始します
console.log('.semantic-search__searching が見つかりました。監視を開始します。');
searchObserver = new MutationObserver(function(mutations) {
//console.log('.semantic-search__searching のミューテーションを検出:', mutations);
mutations.forEach(function(mutation) {
// 監視対象コンテナ内の関連ミューテーションを確認します
if (mutation.type === 'characterData') {
//console.log('関連ミューテーションタイプが検出されました。トグルボタン機能のトリガーを試みます。 ' + mutation.type);
const currentToggleButton = document.querySelector('button.d-toggle-switch__checkbox.semantic-search__results-toggle');
if (currentToggleButton) {
const isCurrentlyEnabled = currentToggleButton.getAttribute('aria-checked') === 'true';
if (!isCurrentlyEnabled) { // トグルが現在有効になっていない場合
// 関連機能をアクティブにするためにクリックイベントをトリガーします
currentToggleButton.click();
console.log('トグルボタンのクリックイベントがトリガーされました。');
} else {
console.log('トグルボタンは既に有効です。');
}
} else {
// コンテナが存在する間にトグルボタンが削除された場合に発生する可能性があります
console.log('機能のトリガー時にトグルボタンが見つかりませんでした。');
}
}
});
});
const config = { childList: true, subtree: true, characterData: true, attributes: true };
searchObserver.observe(searchStatusContainer, config);
console.log('MutationObserver が .semantic-search__searching で開始されました。');
} else {
// コンテナが見つかり、オブザーバーが既に実行中です
//console.log('.semantic-search__searching が見つかりました。オブザーバーはアクティブです。');
}
} else {
// コンテナが見つからなかった場合
if (searchObserver) {
// 以前に実行されていたオブザーバーは、コンテナが削除されたことを意味します
console.log('.semantic-search__searching が削除されました。オブザーバーを切断します。');
searchObserver.disconnect(); // 監視を停止します
searchObserver = null; // オブザーバー変数をリセットします
} else {
// コンテナが見つからず、オブザーバーもアクティブでない(正しい状態)
//console.log('.semantic-search__searching はまだ見つかりません。');
}
}
}
// コンテナの存在を定期的にチェックするために間隔を使用します
const containerCheckInterval = setInterval(observeSearchContainer, 500); // 500ミリ秒ごとにチェックします
</script>