- Копирование, удаление и очистка файлов в NodeJS
- Копирование файлов
- Удаление файлов
- Очистка файлов
- Javascript remove javascript file
- Dynamically removing an external JavaScript or CSS file
- Dynamically replacing an external JavaScript or CSS file
- Conclusion
- Example of Removing JavaScript File Code in JavaScript
- How can I dynamically unload a javascript file?
- How to unpack the contents of a JavaScript file?
- Remove iframe with javascript
- Can I delete file from temporary internet files in javascript?
Копирование, удаление и очистка файлов в NodeJS
В этой статье будут рассмотрены несколько функций: для удаления, копирования и очистки файлов в NodeJS. Все функции являются частью модуля «fs» для работы с файловой системой.
Копирование файлов
Для копирования используется метод «fs.copyFile». В его первый аргумент передаётся название файла (относительный или абсолютный путь к нему), который необходимо скопировать, а во втором пишется новый путь. К примеру:
let fs = require('fs'); fs.copyFile('old_file.txt', 'new_file.txt', err => < if(err) throw err; // не удалось скопировать файл console.log('Файл успешно скопирован'); >);
Метод «copyFile» работает асинхронно. И если файл, путь к которому указан во втором параметре, уже существует, то он будет перезаписан без предупреждения.
Как часто это бывает в NodeJS, в третий аргумент, в callback функцию, передаётся только одна переменная, куда будет записана ошибка в случае неудачного копирования.
Для этой функции есть особый флаг, который передаётся третьим параметром. Это флаг COPYFILE_EXCL. Он не даёт перезаписывать файл назначения, если такой уже существует. Для его использования необходимо передать его третьим параметром, до callback функции:
let fs = require('fs'); let < COPYFILE_EXCL >= fs.constants; fs.copyFile('old_file.txt', 'new_file.txt', COPYFILE_EXCL, err => < if(err) throw err; // не удалось скопировать файл. Он уже существует? console.log('Файл успешно скопирован'); >);
Удаление файлов
Для удаления файлов используется метод «fs.unlink». В его первый аргумент передаётся относительный или абсолютный путь к файлу, который нужно удалить. Во втором параметре ставится callback функция для вывода возможной ошибки:
let fs = require('fs'); fs.unlink('folder/file_delete.txt', err => < if(err) throw err; // не удалось удалить файл console.log('Файл успешно удалён'); >);
Очистка файлов
Для очистки содержимого файлов используется метод «fs.truncate». Этот метод может асинхронный, но в паре к нему есть метод «fs.truncateSync», который работает синхронно. Оба метода принимают одни и те же аргументы. В первый аргумент передаётся относительный или абсолютный путь к файлу, содержимое которого нужно очистить. Во втором параметре ставится callback функция для вывода возможной ошибки:
let fs = require('fs'); fs.truncateSync('folder/file_delete.txt', err => < if(err) throw err; // не удалось очистить файл console.log('Файл успешно очищен'); >); fs.truncate('folder/file_delete.txt', err => < if(err) throw err; // не удалось очистить файл console.log('Файл успешно очищен'); >);
Если в этот метод передать вторым параметром целое число (больше нуля), то будет очищен файл только начиная с определённого символа и до конца файла:
let fs = require('fs'); fs.truncateSync('folder/file_delete.txt', 3, err => < if(err) throw err; // не удалось очистить файл console.log('Файл успешно очищен'); >);
Javascript remove javascript file
Any external JavaScript or CSS file, whether added manually or dynamically, can be removed from the page. The end result may not be fully what you had in mind, however. I’ll talk about this a little later.
Dynamically removing an external JavaScript or CSS file
To remove an external JavaScript or CSS file from a page, the key is to hunt them down first by traversing the DOM, then call DOM’s removeChild() method to do the hit job. A generic approach is to identify an external file to remove based on its file name, though there are certainly other approaches, such as by CSS class name. With that in mind, the below function removes any external JavaScript or CSS file based on the file name entered:
function removejscssfile(filename, filetype)< var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist from var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for var allsuspects=document.getElementsByTagName(targetelement) for (var i=allsuspects.length; i>=0; i--) < //search backwards within nodelist for matching elements to remove if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1) allsuspects[i].parentNode.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild() >> removejscssfile("somescript.js", "js") //remove all occurences of "somescript.js" on page removejscssfile("somestyle.css", "css") //remove all occurences "somestyle.css" on page
#demotable td background-color: lightyellow;
>
Dynamically replacing an external JavaScript or CSS file
Replacing an external JavaScript or CSS file isn’t much different than removing one as far as the process goes. Instead of calling parentNode.removeChild() , you’ll be using parentNode.replaceChild() to do the bidding instead:
function createjscssfile(filename, filetype) < if (filetype=="js")< //if filename is a external JavaScript file var fileref=document.createElement('script') fileref.setAttribute("type","text/javascript") fileref.setAttribute("src", filename) >else if (filetype=="css") < //if filename is an external CSS file var fileref=document.createElement("link") fileref.setAttribute("rel", "stylesheet") fileref.setAttribute("type", "text/css") fileref.setAttribute("href", filename) >return fileref > function replacejscssfile(oldfilename, newfilename, filetype)< var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist using var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for var allsuspects=document.getElementsByTagName(targetelement) for (var i=allsuspects.length; i>=0; i--) < //search backwards within nodelist for matching elements to remove if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(oldfilename)!=-1)< var newelement=createjscssfile(newfilename, filetype) allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i]) >> > replacejscssfile("oldscript.js", "newscript.js", "js") //Replace all occurences of "oldscript.js" with "newscript.js" replacejscssfile("oldstyle.css", "newstyle", "css") //Replace all occurences "oldstyle.css" with "newstyle.css"
Notice the helper function createjscssfile() , which is essentially just a duplicate of loadjscssfile() as seen on the previous page, but modified to return the newly created element instead of actually adding it to the page. It comes in handy when parentNode.replaceChild() is called in replacejscssfile() to replace the old element with the new. Some good news here- when you replace one external CSS file with another, all browsers, including IE7, will reflow the document automatically to take into account the new file’s CSS rules.
var petname=»Spotty»
alert(«Pet Name: » + petname)
#demotable2 td background-color: lightyellow;
>
#demotable2 td background-color: lightblue;
>
Conclusion
So when is all this useful? Well, in today’s world of Ajax and ever larger web applications, being able to load accompanying JavaScript/ CSS files asynchronously and on demand is not only handy, but in some cases, necessary. Have fun finding out what they are, or implementing the technique. 🙂
Example of Removing JavaScript File Code in JavaScript
To remove iframes from the document, you have a few options. One solution is to use online unpackers such as Dean Edwards Unpacker or JSUnpack. Another solution is to utilize a specific unpacker, which you can see an example of in action at http://jsfiddle.net/5hh9H/. Alternatively, you can try using pure Javascript code. It’s worth noting that the reason for needing to remove iframes from the document was not specified.
How can I dynamically unload a javascript file?
It appears that a design reassessment is necessary. You may have to eliminate ajax or ensure that there are no method name conflicts.
You may examine the following URL for more information: http://www.javascriptkit.com/javatutors/loadjavascriptcss2.shtml
The guide provides instructions on eliminating javascript from the DOM, but current browsers tend to retain the code in their memory.
It is impossible to unload a block of JavaScript that has already been loaded and executed in the browser. This is because the block is stored in the browser’s memory under the scope of the respective window, and there is no way to remove it without refreshing the page or closing the window.
To avoid collisions, it’s possible to namespace your code.
var MyJavaScriptCode = <>;
A function named «bla» is being assigned to «MyJavaScriptCode».
Html — Remove iframe with javascript, My Vimeo iFrame had a child frame making requests that continued after DOM complete. Matt’s code did destroy both. In my case my 2nd iframe was a direct child of the parent. The code might not work if you have several iframes on a page that are not direct children of the same parent and you just copy and paste …
How to unpack the contents of a JavaScript file?
JS Beautifier has the ability to both unpack and reformat code.
Explore a range of online unpackers to find the one that best fits your needs.
How can I clear an HTML file input with JavaScript?, There’s 3 ways to clear file input with javascript: set value property to empty or null. Works for IE11+ and other modern browsers. Create an new file input element and replace the old one. The disadvantage is you will lose event listeners and expando properties. Reset the owner form via form.reset () method.
Remove iframe with javascript
A script is available to eliminate all iframes from your document. You can see an instance of its functionality in action through this link: http://jsfiddle.net/5hh9H/.
var iframes = document.querySelectorAll('iframe'); for (var i = 0; i
document.querySelectorAll('iframe').forEach( function(elem)< elem.parentNode.removeChild(elem); >);
It’s unclear why the removal of iframes in the document is necessary since you didn’t specify the reason.
My intention for doing it is to achieve prevent Clickjacking attack; however, it is effective in all scenarios.
You can find more information here:
- Check out the website for OWASP’s information on Clickjacking.
- Access the Wikipedia page on clickjacking by visiting the following URL: http://en.wikipedia.org/wiki/Clickjacking.
File Handling in JavaScript, fs.open () fs.open () method takes a flag as a second argument, if the flag is “w” then it will specifically be used for writing, in the specified and destined location. If it is empty, then an empty file is created. 4. fs.appendFile () This function is used to append or some relevant and specific contents to a file.
Can I delete file from temporary internet files in javascript?
JavaScript does not offer any means to manipulate the cache. However, it is possible to modify the image’s URL to remove it from the cache.
By appending a query string to the image URL and utilizing the present time, you can ensure that the URL is unique every time.
While you are seeking a javascript solution, a recommended approach to fix the issue is to leverage HTTP response headers that define no-cache and expiry values. If you don’t have authority over the web server setup with .htaccess, you can effortlessly create a PHP script that establishes these headers prior to content delivery. Here’s an example in PHP:
header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
Alter the URL string to a format resembling the following.
originalUrl += "?" + new Date().getTime();
JavaScript Examples, The following JavaScript section contains a wide collection of JavaScript examples. The examples are categorized based on the topics, including objects, functions, arrays, DOM, and many more. Many of these program examples contain multiple approaches to solve the problem. Introduction to JavaScript. …