source

html에서 호출할 때 가져온 Javascript 함수가 정의되지 않았습니다.

factcode 2022. 8. 16. 23:15
반응형

html에서 호출할 때 가져온 Javascript 함수가 정의되지 않았습니다.

5.5와 VueJs를 배우고 있는데, js 파일에서 함수를 내보내고 두 번째 js 파일에서 가져오면 html 본문에서 호출할 수 없습니다.예:

A.js

function funA(){
}
export {funA};

B.J.S.

import {funA} from './A.js';

이 시점에서 기능을 사용하면funAB.js 내부에서는 동작하지만 HTML 페이지에서 사용하면 funA가 정의되어 있지 않다고 표시됩니다.예를 들어 다음과 같습니다.

<!DOCTYPE html>
<html lang="en">
<body>
  <button onClick="funA()"></button>
  <script src="{{asset('js/B.js')}}"></script>
</body>
</html>

웹 팩 설정은 다음과 같습니다.

mix.scripts('resources/assets/js/libs/materialize.js', 'public/js/libs/materialize.js')
    .js('resources/assets/js/A.js', 'public/js/js/A.js')
    .js('resources/assets/js/B.js', 'public/js/B.js');

어떤 도움이라도 주시면 감사하겠습니다.잘 부탁드립니다.

내 생각에 당신의 HTML은funA전 세계에 진출하다window물건.새로운 JavaScript 모듈 시스템은 네임스페이스 오염을 방지하기 위해 글로벌 네임스페이스에 아무것도 추가하지 않습니다.

어차피 버튼만 사용하고 싶다면 아래 작업을 해야 합니다.

window.funA = funA

이 작업을 할 수 있습니다.B.js다만, Vue를 사용하고 있는 것 같고, 보다 좋은 방법이 있기 때문에 추천하지 않습니다.이것이 효과가 있으면, Vue 코드도 공유해 주세요.다른 사람이 올바른 방법으로 조작할 수 있도록 해 주세요.

언급URL : https://stackoverflow.com/questions/47993712/imported-javascript-function-not-defined-when-called-from-html

반응형