2

I'm trying to make a complex website, and I want to split it into multiple files, one of them is the content itself, and for that I want to make a function that changes a div content from the file.

The entire code :

<html>
    <body onLoad = "uploadData();">
        <div id = "text"> </div>
    </body>
    <script>
    function uploadData()
    {
        var file = new File("data");
        file.open("r");
        var data = "";
        while (!file.eof) {
            data += file.readln() + "\n";
        }
        file.close();
        alert(data);
        document.getElementById('text').innerHTML = data;
    }
    </script>
</html>

The code has an error at line 7. Please help me !!!

CiprianC
  • 23
  • 3

2 Answers2

3

You cannot read from a file this way in a modern browser for security reasons (the scripts are sandboxed).

Maybe you took those functions from a very old and non-standard Javascript reference like JavaScript Programmer's Reference (by Cliff Wootton, 2001) or Pure JavaScript (by Charlton Ting, Jason Gilliam, Allen R. Wyke, 1999). Those are very antique manuals and deal with obsolete browser versions (Internet Explorer 4...).

You can also find those functions or a similar set in the APIs provided by JS engines like Adobe InDesign, NodeJS or ShellJS, which are not browser engines. Working with a JS engine doens't imply you'll find the same API as provided by another one. Typically, you won't do the same things with NodeJS and Firefox JS engine (OdinMonkey currently).

If you want to dynamically change the content of your page (ie its DOM structure) with an external resource (a file located in your server), use the Ajax techniques.

Finally, in this SO question, you'll find some ways to get the content of a local file, but they must have been selected manually by the user.

Amessihel
  • 5,891
  • 3
  • 16
  • 40
0

If you are creating a complex website, you need a web server. Let's assume your content does not need server side rendering and you have Apache installed, then a plain XHR function can help you fetching the content. If plain XHR is not helpful, jQuery perhaps can ease things.

Sami Altundag
  • 238
  • 2
  • 6