<body>
に.jsファイルにエクスポートしようとしているインラインJavascriptがあります。私は通常、あなたは単にドキュメントの準備機能にそれを含むことがありますが、それをコピー/ペーストすることを知っていますが、これについては何かが異なります。私はJSに流暢ではなく、コードは私によって書かれていませんでした(しかし、無料でオンラインで提供されました)。インラインJavascriptを外部.jsファイルに移動
これはコードが自分のファイルにある方法です。それ以上の情報が必要な場合は、尋ねてください!
<body>
<script>
(function (window, document) {
var menu = document.getElementById('menu')
, WINDOW_CHANGE_EVENT = ('onorientationchange' in window) ? 'orientationchange' : 'resize';
function toggleHorizontal() {
[].forEach.call(document.getElementById('menu').querySelectorAll('.custom-can-transform'), function (el) {
el.classList.toggle('pure-menu-horizontal');
});
};
function toggleMenu() {
// set timeout so that the panel has a chance to roll up
// before the menu switches states
if (menu.classList.contains('open')) {
setTimeout(toggleHorizontal, 500);
}
else {
toggleHorizontal();
}
menu.classList.toggle('open');
document.getElementById('toggle').classList.toggle('x');
};
function closeMenu() {
if (menu.classList.contains('open')) {
toggleMenu();
}
}
document.getElementById('toggle').addEventListener('click', function (e) {
toggleMenu();
e.preventDefault();
});
window.addEventListener(WINDOW_CHANGE_EVENT, closeMenu);
})(this, this.document);
</script>
</body>
UPDATE: 私はスコープ(foo = function() {}
)でスクリプトをラップし、それをHTMLページにwindow.onload = function
を追加することにより、外部から仕事を得ることができました。これは@marmeladzeによって提案され、働いた。
別のファイルに移行すると機能しませんか?あなたはどんなエラーを出していますか? – mindOfAi
構文を修正してください(その1つ:メニュー宣言の後にセミコロンを置く必要があります)、ファイル内でそれらを移動し、最後のbodyタグ、またはファイル内で再度呼び出す はスコープ内ですべてをラップします= function(){/ *残りのコード* /} ')を呼び出し、' window.onload = foo'を呼び出します。どこにでも置けます。 – marmeladze
@marmeladze私はあなたが言ったことをスコープでラップし、 'window.onload = foo'で呼び出すことでそれを実行しました。しかし、今私は別の問題に走っています。 jsが実際に影響を及ぼすコードは、[Angular](https://angularjs.org/)を介して 'included'されているので、jsがあまり好きではないようです。 – zaviiox