From: David Mark on
nick wrote:
> On Apr 22, 11:52 pm, Andrew Poulos <ap_p...(a)hotmail.com> wrote:
>> var qt = document.createElement("object");
>> qt.classid = "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B";
>> qt.codebase = "http://www.apple.com/qtactivex/qtplugin.cab";
>
> ...
>
>> var par = document.createElement("param");
>> par.name = "src";
>> par.value = "sample.mov";
>
> Try using setAttribute() instead of attribute property shortcuts.
>

What makes you think that will make a difference?
From: Andrew Poulos on
On 23/04/2010 2:17 PM, David Mark wrote:
> Andrew Poulos wrote:
>> On 23/04/2010 12:00 PM, David Mark wrote:
>>> Andrew Poulos wrote:
>>>> On 23/04/2010 10:19 AM, David Mark wrote:
>>>>> Andrew Poulos wrote:
>>>>>> If I dynamically add a quicktime movie to a page using innerHTML the
>>>>>> movie appears/plays but the movie's controller bar doesn't in IE.
>>>>>>
>>>>>> var movie = "<object " +
>>>>>> "classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' " +
>>>>>> "codebase='http://www.apple.com/qtactivex/qtplugin.cab' " +
>>>>>> "style='position:absolute; left:106px; top:44px; width:390px;
>>>>>> height:390px;'>" +
>>>>>> "<param name='src' value='sample.mov'>" +
>>>>>> "<param name='autoplay' value='false'>" +
>>>>>> "<param name='loop' value='false'>" +
>>>>>> "<param name='controller' value='true'>" +
>>>>>> "<param name='scale' value='ToFit'>" +
>>>>>> "<embed " +
>>>>>> "src='sample.mov' " +
>>>>>> "style='position:absolute; left:0px; top:0px; width:390px;
>>>>>> height:390px;' " +
>>>>>> "type='video/quicktime' " +
>>>>>> "pluginspace='http://www.apple.com/quicktime/download/' " +
>>>>>> "autoplay='false' " +
>>>>>> "loop='false' " +
>>>>>> "controller='true' " +
>>>>>> "scale='ToFit'>" +
>>>>>> "</object>"
>>>>>>
>>>>>> document.getElementById("main").innerHTML = "movie";
>>>>>
>>>>> I'll assume the quotes are a typo.
>>>>
>>>> Yep, you et al are right. I typed it in wrong in this post.
>>>>
>>>>>> The controller bar appears in Firefox, Chrome, Opera...
>>>>>>
>>>>>> I'm at a loss. Is it a bug in IE, with using innerHTML, the OBJECT
>>>>>> element...?
>>>>>
>>>>> Why don't you remove innerHTML from the equation and see?
>>>>
>>>> If I manually add it to the HTML page (actually type it in) the
>>>> controller bar appears.
>>>
>>> Okay.
>>>
>>>>
>>>> If I use IE 8's developer tool it shows the param as
>>>> <param name="controller" value="true">
>>>> though where the controller bar should appear there's sometimes a solid
>>>> black rectangle or the area is transparent.
>>>
>>> When using innerHTML? Does the DOM representation look any different
>>> when you use static markup?
>>
>> I tried this in IE:
>>
>> var qt = document.createElement("object");
>> qt.classid = "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B";
>> qt.codebase = "http://www.apple.com/qtactivex/qtplugin.cab";
>
> The name of the property is codeBase.
>
> http://msdn.microsoft.com/en-us/library/ms533576(VS.85).aspx

It, as well as using setAttribute, still results in the QT window with a
question mark. The QT movie is next to the HTML file and can be opened
with the QT player.

I thought that maybe their was a path issue but using innerHTML the QT
appears (though the controller doesn't). I'm beginning to incline
towards thinking its broken.

Andrew Poulos
From: David Mark on
Andrew Poulos wrote:
> On 23/04/2010 2:17 PM, David Mark wrote:
>> Andrew Poulos wrote:
>>> On 23/04/2010 12:00 PM, David Mark wrote:
>>>> Andrew Poulos wrote:
>>>>> On 23/04/2010 10:19 AM, David Mark wrote:
>>>>>> Andrew Poulos wrote:
>>>>>>> If I dynamically add a quicktime movie to a page using innerHTML the
>>>>>>> movie appears/plays but the movie's controller bar doesn't in IE.
>>>>>>>
>>>>>>> var movie = "<object " +
>>>>>>> "classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' " +
>>>>>>> "codebase='http://www.apple.com/qtactivex/qtplugin.cab' " +
>>>>>>> "style='position:absolute; left:106px; top:44px; width:390px;
>>>>>>> height:390px;'>" +
>>>>>>> "<param name='src' value='sample.mov'>" +
>>>>>>> "<param name='autoplay' value='false'>" +
>>>>>>> "<param name='loop' value='false'>" +
>>>>>>> "<param name='controller' value='true'>" +
>>>>>>> "<param name='scale' value='ToFit'>" +
>>>>>>> "<embed " +
>>>>>>> "src='sample.mov' " +
>>>>>>> "style='position:absolute; left:0px; top:0px; width:390px;
>>>>>>> height:390px;' " +
>>>>>>> "type='video/quicktime' " +
>>>>>>> "pluginspace='http://www.apple.com/quicktime/download/' " +
>>>>>>> "autoplay='false' " +
>>>>>>> "loop='false' " +
>>>>>>> "controller='true' " +
>>>>>>> "scale='ToFit'>" +
>>>>>>> "</object>"
>>>>>>>
>>>>>>> document.getElementById("main").innerHTML = "movie";
>>>>>>
>>>>>> I'll assume the quotes are a typo.
>>>>>
>>>>> Yep, you et al are right. I typed it in wrong in this post.
>>>>>
>>>>>>> The controller bar appears in Firefox, Chrome, Opera...
>>>>>>>
>>>>>>> I'm at a loss. Is it a bug in IE, with using innerHTML, the OBJECT
>>>>>>> element...?
>>>>>>
>>>>>> Why don't you remove innerHTML from the equation and see?
>>>>>
>>>>> If I manually add it to the HTML page (actually type it in) the
>>>>> controller bar appears.
>>>>
>>>> Okay.
>>>>
>>>>>
>>>>> If I use IE 8's developer tool it shows the param as
>>>>> <param name="controller" value="true">
>>>>> though where the controller bar should appear there's sometimes a
>>>>> solid
>>>>> black rectangle or the area is transparent.
>>>>
>>>> When using innerHTML? Does the DOM representation look any different
>>>> when you use static markup?
>>>
>>> I tried this in IE:
>>>
>>> var qt = document.createElement("object");
>>> qt.classid = "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B";
>>> qt.codebase = "http://www.apple.com/qtactivex/qtplugin.cab";
>>
>> The name of the property is codeBase.
>>
>> http://msdn.microsoft.com/en-us/library/ms533576(VS.85).aspx
>
> It, as well as using setAttribute, still results in the QT window with a
> question mark. The QT movie is next to the HTML file and can be opened
> with the QT player.
>
> I thought that maybe their was a path issue but using innerHTML the QT
> appears (though the controller doesn't). I'm beginning to incline
> towards thinking its broken.
>

OBJECT elements in IE are a pain. There may be some caveat I've
forgotten since I wrote my Flash module. Out of curiosity, I created a
page with static markup that ran the Apple demo movie and then created
the same DOM structure (verified by IE8's debugger) next to it. The
static one worked every time, the dynamic one never did anything useful
(the QT context menu is present in the space taken up by the non-movie
but can't even display the QT about dialog). Didn't bother with innerHTML.

So I don't know what to tell you other than to beware of plug-ins
(particularly in IE).
From: Andrew Poulos on
On 24/04/2010 7:15 AM, David Mark wrote:
> Andrew Poulos wrote:
>> On 23/04/2010 11:41 PM, Ry Nohryb wrote:
>>> On Apr 23, 1:56 pm, Andrew Poulos<ap_p...(a)hotmail.com> wrote:
>>>> On 23/04/2010 4:11 PM, David Mark wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> Andrew Poulos wrote:
>>>>>> On 23/04/2010 2:17 PM, David Mark wrote:
>>>>>>> Andrew Poulos wrote:
>>>>>>>> On 23/04/2010 12:00 PM, David Mark wrote:
>>>>>>>>> Andrew Poulos wrote:
>>>>>>>>>> On 23/04/2010 10:19 AM, David Mark wrote:
>>>>>>>>>>> Andrew Poulos wrote:
>>>>>>>>>>>> If I dynamically add a quicktime movie to a page using
>>>>>>>>>>>> innerHTML the
>>>>>>>>>>>> movie appears/plays but the movie's controller bar doesn't in
>>>>>>>>>>>> IE.
>>>>
>>>>>>>>>>>> var movie = "<object " +
>>>>>>>>>>>> "classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' " +
>>>>>>>>>>>> "codebase='http://www.apple.com/qtactivex/qtplugin.cab'" +
>>>>>>>>>>>> "style='position:absolute; left:106px; top:44px; width:390px;
>>>>>>>>>>>> height:390px;'>" +
>>>>>>>>>>>> "<param name='src' value='sample.mov'>" +
>>>>>>>>>>>> "<param name='autoplay' value='false'>" +
>>>>>>>>>>>> "<param name='loop' value='false'>" +
>>>>>>>>>>>> "<param name='controller' value='true'>" +
>>>>>>>>>>>> "<param name='scale' value='ToFit'>" +
>>>>>>>>>>>> "<embed " +
>>>>>>>>>>>> "src='sample.mov' " +
>>>>>>>>>>>> "style='position:absolute; left:0px; top:0px; width:390px;
>>>>>>>>>>>> height:390px;' " +
>>>>>>>>>>>> "type='video/quicktime' " +
>>>>>>>>>>>> "pluginspace='http://www.apple.com/quicktime/download/'" +
>>>>>>>>>>>> "autoplay='false' " +
>>>>>>>>>>>> "loop='false' " +
>>>>>>>>>>>> "controller='true' " +
>>>>>>>>>>>> "scale='ToFit'>" +
>>>>>>>>>>>> "</object>"
>>>>
>>>>>>>>>>>> document.getElementById("main").innerHTML = "movie";
>>>>
>>>>>>>>>>> I'll assume the quotes are a typo.
>>>>
>>>>>>>>>> Yep, you et al are right. I typed it in wrong in this post.
>>>>
>>>>>>>>>>>> The controller bar appears in Firefox, Chrome, Opera...
>>>>
>>>>>>>>>>>> I'm at a loss. Is it a bug in IE, with using innerHTML, the
>>>>>>>>>>>> OBJECT
>>>>>>>>>>>> element...?
>>>>
>>>>>>>>>>> Why don't you remove innerHTML from the equation and see?
>>>>
>>>>>>>>>> If I manually add it to the HTML page (actually type it in) the
>>>>>>>>>> controller bar appears.
>>>>
>>>>>>>>> Okay.
>>>>
>>>>>>>>>> If I use IE 8's developer tool it shows the param as
>>>>>>>>>> <param name="controller" value="true">
>>>>>>>>>> though where the controller bar should appear there's sometimes a
>>>>>>>>>> solid
>>>>>>>>>> black rectangle or the area is transparent.
>>>>
>>>>>>>>> When using innerHTML? Does the DOM representation look any
>>>>>>>>> different
>>>>>>>>> when you use static markup?
>>>>
>>>>>>>> I tried this in IE:
>>>>
>>>>>>>> var qt = document.createElement("object");
>>>>>>>> qt.classid = "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B";
>>>>>>>> qt.codebase = "http://www.apple.com/qtactivex/qtplugin.cab";
>>>>
>>>>>>> The name of the property is codeBase.
>>>>
>>>>>>> http://msdn.microsoft.com/en-us/library/ms533576(VS.85).aspx
>>>>
>>>>>> It, as well as using setAttribute, still results in the QT window
>>>>>> with a
>>>>>> question mark. The QT movie is next to the HTML file and can be opened
>>>>>> with the QT player.
>>>>
>>>>>> I thought that maybe their was a path issue but using innerHTML the QT
>>>>>> appears (though the controller doesn't). I'm beginning to incline
>>>>>> towards thinking its broken.
>>>>
>>>>> OBJECT elements in IE are a pain. There may be some caveat I've
>>>>> forgotten since I wrote my Flash module. Out of curiosity, I created a
>>>>> page with static markup that ran the Apple demo movie and then created
>>>>> the same DOM structure (verified by IE8's debugger) next to it. The
>>>>> static one worked every time, the dynamic one never did anything useful
>>>>> (the QT context menu is present in the space taken up by the non-movie
>>>>> but can't even display the QT about dialog). Didn't bother with
>>>>> innerHTML.
>>>>
>>>>> So I don't know what to tell you other than to beware of plug-ins
>>>>> (particularly in IE).
>>>>
>>>> Thanks for looking into it. I've been playing with it and I'm getting
>>>> the feeling that controller doesn't appear because of some timing issue
>>>> with the display of the actual vision.
>>>>
>>>> If I stick a button on the screen with elem.SetControllerVisible(true)
>>>> in it, the controller appears when I click the button.
>>>>
>>>> If I call elem.SetControllerVisible(true) right after the innerHTML the
>>>> controller doesn't appear.
>>>>
>>>> If I put an alert between the innerHTML and the call to
>>>> elem.SetControllerVisible(true) the controller does appear.
>>>>
>>>> For a short foray in time wasting I tried this site:
>>>> <url:http://developer.apple.com/mac/library/documentation/QuickTime/Concep...
>>>>
>>>> >
>>>
>>> Note the EnableJavaScript="true" in the section "Controlling QuickTime
>>> Using JavaScript":
>>>
>>> <quote>
>>> Before You Start
>>> The browser must load a copy of the QuickTime plug-in before you can
>>> query or control QuickTime using JavaScript. In addition, the
>>> interface between the browser and the plug-in must be initialized. In
>>> most cases, you also want to give an embedded movie a name so it can
>>> be addressed by name in your script.
>>>
>>> This is accomplished by the following steps:
>>>
>>> Use the HTML<EMBED> tag and<OBJECT> tag to cause the browser to load
>>> a copy of the QuickTime plug-in.
>>> Set the attribute EnableJavaScript=�true� in the<EMBED> tag.
>>> Set the<OBJECT> id attribute and the<EMBED>NAME attribute to a name
>>> for the movie. Use the same name for both attributes.
>>> If you are using QuickTime DOM events, set an id attribute for the
>>> <EMBED> tag as well, using a unique value.
>>
>> Do you have a simple example of using the qt_load event. I couldn't work
>> it out from Apple's docs.
>
> These are a red herrings. It works with static markup, so it should
> work by appending the same DOM nodes. The plug-in doesn't know how they
> got there.
>
>>
>>> The easiest way to perform these steps is to include the
>>> AC_QuickTime.js script and pass the name and id attributes, set to the
>>
>> AC_QuickTime.js 1.2 uses browser sniffing. Isn't that "bad"?
>
> Yes. Very. But if it actually "works" in IE, you can look at what it
> does to accomplish this feat. Just ignore the sniffing as it is almost
> certainly unrelated to the problem.

AC_QuickTime.js does seem to work in IE.

Andrew Poulos
From: Ry Nohryb on
On Apr 23, 10:48 pm, Andrew Poulos <ap_p...(a)hotmail.com> wrote:
>
> Do you have a simple example of using the qt_load event. I couldn't work
> it out from Apple's docs.
> (...)

It's all there, in listing 1.9, in the section "Using DOM Events to
Monitor Movie Loading".
--
Jorge.