将内联Javascript移动到外部.js文件

时间:2017-02-01 05:31:48

标签: javascript html

我的<body>中有一些内联Javascript,我正在尝试导出到.js文件。我知道通常你只需将它复制/粘贴,有时将其包含在文档就绪函数中,但是关于这个的一些东西是不同的。我不是非常流利的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>

更新 我能够将脚本包装在作用域(foo = function() {})中,并通过将window.onload = function添加到HTML页面来使其在外部工作。这是由@marmeladze建议并且工作。

2 个答案:

答案 0 :(得分:1)

正如@marmeladze所建议的那样,我能够将脚本包装在一个范围(Private Sub cmd_run_Click() 'process ocr on table Dim OCRz As New Tesseract("C:\\Users\\aftab\\Downloads\\ocr\\ocr\\tesseract\\tessdata", "eng", OcrEngineMode.OcrEngineMode_TesseractOnly) MsgBox "processing" 'display results Me.Requery End Sub )中,并通过将foo = function() {}添加到HTML页面来使其在外部工作。

答案 1 :(得分:0)

那么在外部js文件中导出它真正的问题是什么?

一如既往,我会在新的js中复制和过去代码。将它链接到HTML页面并编写我需要的函数作为HTML标签的属性(例如,在主体的标签中使用“onload = functioname();”)。 正如marmeladze所说,你可以把所有东西都包裹在一个独特的范围内,这样你就可以把它称为体内。

也许你这样做,如果你可以更好地解释你的问题会很棒。