为什么我的 Javascript 函数不是 HTML 的 运行?

Why is my Javascript function not running from HTML?

我遇到了一个问题,我想将我的脚本放在另一个文件而不是我的 html 中,但是当我把它放在我的 Javascript 文件中时,它无法正常工作在脚本位于 html 文件之前。

HTML:

<!DOCTYPE html>
<head>
  <meta charset="utf-8">
  <title>Client-Webapp</title>
  <base href="./">
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
  <input id="inputFileToLoad" type="file" name="encode" />
  <div id="imgTest"></div>
  <script type='text/javascript' href="/ClientApp/www/js/index.js"></script>
</body>
</html>

Javascript:

function encodeImageFileAsURL() {
    console.log('kaksi');
    var filesSelected = document.getElementById("inputFileToLoad").files;
    if (filesSelected.length > 0) {
    var fileToLoad = filesSelected[0];

    var fileReader = new FileReader();

    fileReader.onload = function(fileLoadedEvent) {
        var srcData = fileLoadedEvent.target.result; // <--- data: base64

        var newImage = document.createElement('img');
        newImage.src = srcData;

        document.getElementById("imgTest").innerHTML = newImage.outerHTML;
        //alert("Converted Base64 version is " + document.getElementById("imgTest").innerHTML);
        console.log("Converted Base64 version is: " + document.getElementById("imgTest").innerHTML);
    }
    fileReader.readAsDataURL(fileToLoad);
    }
}

在控制台上我什么也没得到。没有错误或文件的 base64 是我的目标。 如果有帮助的话,我正在用 Cordova 做这个。

文件结构是这样的:

ClientApp
---www
------index.html
------js
---------index.js

同样,如果我将脚本放在 html 中,它就会起作用。所以我不知道函数调用或路径是问题还是什么。 感谢您的帮助。

我猜你可以试试: <script src="js/ClientApp/www/js/index.js"></script> 代替 <script type='text/javascript' href="/ClientApp/www/js/index.js"></script>

我将 href 替换为 src 而我忽略了 type

src 无论 type='text/javascript'

对我有用

您的脚本源不正确。 您正在用 href 加载 javascript。这是错误的。您必须使用 src 属性。

 <script type='text/javascript' src="js/index.js"></script>

您可以再试一次。

你有运行 encodeImageFileAsURL javascript 功能吗?

您在脚本标签中使用的是 href 属性而不是 src:

<script type='text/javascript' href="/ClientApp/www/js/index.js"></script>

type 属性在 html5 中是可选的,因此这里并不需要。 试试这个:

<script src="js/index.js"></script>

尝试<script src=“js/index.js”></script>