2015-06-19 4 views
2

Сейчас я пытаюсь сохранить информацию с HTML-страницы, которую я создаю, в текстовый документ, используя javascript и пакет FileSaver.js. Я не очень хорошо разбираюсь в HTML и совершенно новичок в javascript, так что вероятность того, что я совершу какую-то вопиющую ошибку. На данный момент у меня есть файл FileSaver.js eligrey в том же каталоге, что и файл HTML, с которого я работаю, поэтому я могу назвать его просто «FileSaver.js» в HTML.Реализация функции FileSaver.js saveAs() в HTML-скрипте

Сейчас я работаю с чем-то вроде этого:

//some irrelevant text 
 

 
<script src="FileSaver.js"> 
 
    function download(){ 
 
    
 
    //alert("hello world"); 
 
    //this alert line was to test the function call 
 
    //the alert actually appears when the <script> tag 
 
    // has no src field labeled. Just an observation. 
 
    
 
    var blob = new Blob(["Hello World"],{type:"text/plain;charset=utf-8"}); 
 
    saveAs(blob,"helloworld.txt"); 
 
    } 
 
</script> 
 

 
//some more irrelevant text 
 

 
<input type="button" value="download" onclick="download();"/> 
 
/*from this button I want to gather information from input text fields on the page. 
 
I already know how to do that, the problem is creating and, subsequently, 
 
downloading the text file I am trying to create. For simplicity's sake, the text I am 
 
capturing in this example is hardcoded as "hello world"*/ 
 

 
//last of irrelevant text 
 
//oh, and don't try to run this snippet :P

У меня также есть Blob.js файл eligrey доступна в моем непосредственном рабочем каталоге, а также, на всякий случай.

На данный момент кнопка ничего не делает. Я уверен, что я правильно вызываю функцию, учитывая, что могу получать текст предупреждения javascript, по крайней мере, когда у тега скрипта не было src. Если я добавлю src, абсолютно ничего не произойдет. Браузер, с которого я тестирую, - это последняя стабильная версия Google Chrome (43,0, я думаю) в Windows XP. Пожалуйста, сообщите мне обо всем, что у меня пропало и/или не так. Заранее спасибо

ответ

1

У вас не может быть тега скрипта с атрибутом и содержимым src внутри тега. Разделите его на два отдельных тега сценария. См What if script tag has both "src" and inline script?

Обратите внимание, что <script>cannot be a self-closing tag

<script src="FileSaver.js"></script> 
<script> 
    function download(){ 

    //alert("hello world"); 
    //this alert line was to test the function call 
    //the alert actually appears when the <script> tag 
    // has no src field labeled. Just an observation. 

    var blob = new Blob(["Hello World"],{type:"text/plain;charset=utf-8"}); 
    saveAs(blob,"helloworld.txt"); 
    } 
</script> 
+0

спасибо, как вы написали это на самом деле работает! Я попробовал как и у вас, но не работал, поэтому странно, что его закрытие как таковое работает. О, хорошо, еще раз спасибо! – MasterChef

+0

Да, это другое дело, теги сценария не могут быть самозакрывающимися, как и divs, только теги могут быть закрыты самостоятельно;) http://stackoverflow.com/questions/69913/why-dont-self-closing -script-tags-work Обычно теги, которые не могут иметь никакого содержимого, могут быть самозакрывающимися, например, 'input, br, img ...' –