みなさん、こんにちは! だから、これが私の状況です:私のコンポーネントのいくつかはjavascriptを必要とします。 preview-head.html
javascriptファイルを正常に呼び出すことができますが、初期化には問題があります。
v5.0.1より前は、次のものがありました。
document.addEventListener("DOMContentLoaded", function(event) {
/* The stuff I needed to initialise */
}, false);
動作しましたが、現在は動作しません。
私はあなたのドキュメントとStackoverflow自体をずっと調べてきましたが、これに対する解決策を見つけることができません。 Storybookが考慮すべきことのように感じます。
どんな助けでもいただければ幸いです。
気にしない、解決した
@ BennyZ28解決策は何でしたか?
@shilman実際、私はそれを解決していません。画面の前で何時間も過ごした後、私は
だから、どんな助けでもまだ感謝しています!
'page'が変更されるたびに、 iframe
内の古いdiv#root
要素が削除され、新しい要素が追加されます。 この機能を使用してMutationObserver
と組み合わせると、ページが変更されるたびに関数を実行できます。
preview-head.html
、次のものを追加できます。
function runOnInit() {
console.log('Init')
}
function runOnPageChange() {
console.log('Page has changed!')
}
document.addEventListener('DOMContentLoaded', function() {
runOnInit();
const callback = function(mutationsList) {
for (let i = 0, len = mutationsList.length; i < len; i++) {
if (mutationsList[i].type == 'childList') {
runOnPageChange();
break;
}
}
};
const observer = new MutationObserver(callback);
const config = { childList: true, subtree: false };
observer.observe(document.getElementById('root'), config);
}, false);
MutationObserver
どのように機能するかを理解するには、 MDNドキュメントを参照してください。
🙏
@ BennyZ28解決策は何でしたか?
回避策は複雑すぎます。ストーリーがDOMツリーに追加された直後に呼び出されるコールバックをストーリーブックが提供しないのはなぜですか?
最も参考になるコメント
回避策は複雑すぎます。ストーリーがDOMツリーに追加された直後に呼び出されるコールバックをストーリーブックが提供しないのはなぜですか?