I’m doing a fair amount of development using the ExtJS framework. IE is a bit picky about getting JavaScript properly formatted (otherwise it refuses to render the page). That’s why I’ve found JSLint really useful for locating stray commas or semi-colons.
To make it a bit quicker to put the file contents in the JSLint box I decided to hook it up to the Run menu in Notepad++. However, the JSLint web page doesn’t allow us to pass in data to it. To get around this you can copy the HTML + JS files from the authors website an copy them locally. Once you’ve got them locally you can modify the source to allow the passing of data.. here’s the change I made to do it on my system:
jslint.php changes.. add this right near the end
<script src="javascript.js"></script>
You’ll then need a way to take the file contents and fire it off to the page. At first I tried passing the file contents via the GET request, but it’s limited in length. Also, Notepad++ won’t let you send the file contents via the Run command. In the end I chose to use a piece of VBScript to bring up the webpage in the default browser, and some JavaScript to read in the file & place it into the page.
launchJSLint.vbs
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(wscript.Arguments(0), 1) Dim strCharacters Do Until objFile.AtEndOfStream strCharacters = strCharacters + objFile.Read(1) Loop strCharacters = Escape(strCharacters) Set objFileSystem = CreateObject("Scripting.fileSystemObject") Set objOutputFile = objFileSystem.CreateTextFile("c:\progra~1\notepad++\jslint\javascript.js", TRUE) objOutputFile.WriteLine("document.getElementById(""input"").value = unescape(""" & strCharacters & """);") Dim wShell Set wShell = CreateObject("WScript.Shell") wShell.Run "c:\progra~1\notepad++\jslint\jslint.html", 9
Finally, this is the Run command you can use in Notepad++ to launch the script…
wscript "C:\Program Files\Notepad++\launchJSLint.vbs" "$(FULL_CURRENT_PATH)"