> If QuickTime is not installed it tries to auto-install when I
> run my scripts. Does anyone know of a way to test for QuickTime without
> having it auto-install if it's not present?
It's actually quite tricky completely preventing ActiveX controls from trying
to install their software.
You should be able to leave the 'codebase="..."' attribute off the <object>
to prevent IE from trying to install software. Problem is, IE still tries: it
asks microsoft.com where it can get an ActiveX install package for the given
classid. Don't know if this actually comes up with a working answer for
QuickTime (doubt it, being Apple's baby), but it's annoying that it makes the
attempt.
(It's possible to stop IE doing this by using a nasty 'dummy codebase' hack.
codebase="javascript:" works in IE versions before IE6 Service Pack 1;
codebase="view-source:about:blank" works in all IE6 but crashes IE5.)
> I'm first checking to see if QuickTime is installed with:
> document.writeln(' Set hasQuickTimeChecker =
> CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")');
You don't need to use VB - let alone scripts-writing-scripts - to try to
create an ActiveX object. JScript can do it with 'new ActiveXObject()'.
This still only covers IE though. For a complete script that works with IE and
browsers that support the navigator.plugins array, see:
http://www.skyzyx.com/scripts/quicktime.php
Another possible approach would be to sniff for IE-without-QuickTime only,
and output the plain <object> in every other case (since IE is the only
browser that treats lack-of-plugin as such a dire emergency it has to pester
you with a pop-up on every page).
<script type="text/javascript">
var obj= 'QuickTimeCheckObject.QuickTimeCheck';
var qt= true;
if (window.ActiveXObject) {
qt= false;
eval('try{qt= new ActiveXObject(obj)}catch(e){}');
}
</script>
<p> document </p>
<script type="text/javascript">
if (!qt) document.write('\x3C!-'+'-');
</script>
<object>
your normal object tag here, but don't use a comment in it
</object>
<!-- -->
<p> document continues </p>
(And yes, what I'm doing with the comment is indeed evil. But I can justify
evil if only IE sees it.)