Showing posts with label Javascript. Show all posts
Showing posts with label Javascript. Show all posts

Monday, November 19, 2007

Solution to Wscript and HTML Integration

Much to my disgrace, I could get WSCript to work with HTML for hours.
The error "WScript is undefined" has puzzled me throughout the night, but finally the problem is solved.


What's the Problem?


According to MSDN, "the WScript object is the root object of the Windows Script Host object model hierarchy. It never needs to be instantiated before invoking its properties and methods, and it is always available from any script file. "

Simply put WScript provides access to root object for the Windows Script Host object model.


WScript is the default Windows Script Host Object, HTML can only communicate with it via ActiveX. So that's why we need ActiveXObject() instead of WScript.CreateNewOjbect(). And instead of WScript.Echo(); we have to use window.alert which is a built-in function for Javascript.



The initial js Code:

var iTunesApp = WScript.CreateObject("iTunes.Application");
WScript.Echo(allPlaylistNames());

function allPlaylistNames() {

var librarySource = iTunesApp.LibrarySource;
var listOfPlaylists = librarySource.Playlists;
var playlistReturn = new Array();

for(i = 1; i <= listOfPlaylists.Count; i++) { playlistReturn[i] = listOfPlaylists.Item(i).Name + '[[sep]]p_' + i; } return playlistReturn.sort(); }


Change it to :

var iTunesApp = new ActiveXObject("iTunes.Application");
window.alert(allPlaylistNames());

function allPlaylistNames(){
var librarySource = iTunesApp.LibrarySource;
var listOfPlaylists = librarySource.Playlists;
var playlistReturn = new Array();

for(i = 1; i <= listOfPlaylists.Count; i++) {
playlistReturn[i] = listOfPlaylists.Item(i).Name + '[[sep]]p_' + i;
}
return playlistReturn.sort();

}

References:

http://msdn2.microsoft.com/en-us/library/at5ydy31.aspx
http://thegreenbutton.com/forums/thread/84583.aspx
http://microsoft.apress.com/asptodayarchive/73503/accessing-the-windows-system-using-activex-and-html

Run External Jscript in an External Jscript

My goal is to have an external js file loading a set of js files. In this case, for starters, just one subsequent external js, js2.js.



loader.html - to load all the subsequent js files.



<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<title>JsLoader</title>

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

</head>


<body>

<input type="button" onClick="f1()" value="Load" />


</body>

</html>



js1.js - External js file 1



function f1(){

var NewScript=document.createElement('script')

NewScript.src="js2.js"

document.body.appendChild(NewScript);

f2();

}



j2.js- External js file 2



function f2(){

alert('I told you I can get here!')

}





Files:
loader.html
js1.js
js2.js

Sunday, November 18, 2007

Run External Javascript on Webpage

Create a HTML file msgBox.html, without Importing External Js:


<HTML>

<HEAD>


<SCRIPT LANGUAGE="JavaScript">

function MsgBox (textstring) {

alert (textstring) }

</SCRIPT>


</HEAD>


<BODY>


<FORM>

<INPUT NAME="text1" TYPE=Text>

<INPUT NAME="submit" TYPE=Button VALUE="Show Me" onClick="MsgBox(form.text1.value)">

</FORM>


</BODY>

</HTML>


Create File msgBox.js with the code:


function MsgBox (textstring) {

alert (textstring) }

Change the html code to:




<HTML>

<HEAD>

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

</HEAD>

<BODY>

<FORM>

<INPUT NAME="text1" TYPE=Text>

<INPUT NAME="submit" TYPE=Button VALUE="Show Me" onClick="MsgBox(form.text1.value)">

</FORM>

</BODY>

</HTML>





Download

msgBox.html - html page holding the javascript

msgBox.js - js file to be imported






References:

http://www.webteacher.com/javascript/ch01.html