HTML Editor Javascript (again!)

HTML Editor Javascript (again!)

Josh Grant發表於
Number of replies: 1
Hey all
I've encountered the common problem of trying to insert blocks of JS and VB script into a quiz intro HTML editor, meant to assist with flash versions. Moodle seems to add page break tags at the end of every line of code, a problem I haven't found anywhere in the forums. We are using Moodle v1.6.4+.
Below are the two code snippets, the first is the code entered in the HTML block (HTML blocks are disabled in the admin configs), the second is the resulting source code for the quiz intro page.
Thanks in advance,
Josh

HTML Block Content:

<div style="text-align: center;"><span style="font-weight: bold;">
Watch the following flash movie, then proceed to the multiple choice questions, which must all be answered correctly.<br /><br /></span>
</div>
<script language="JavaScript" type="text/javascript">
<!-- //
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 8;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Revision of Flash required
var requiredRevision = 0;
// the version of javascript supported
var jsVersion = 1.0;
// -----------------------------------------------------------------------------
// -->
</script>
<script language="VBScript" type="text/vbscript">
<!-- // Visual basic helper required to detect Flash Player ActiveX control version information
Function VBGetSwfVer(i)
on error resume next
Dim swControl, swVersion
swVersion = 0

set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))
if (IsObject(swControl)) then
swVersion = swControl.GetVariable("$version")
end if
VBGetSwfVer = swVersion
End Function
// -->
</script>
<script language="JavaScript1.1" type="text/javascript">
<!-- // Detect Client Browser type
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
jsVersion = 1.1;
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i){
// NS/Opera version >= 3 check for Flash plugin in plugin array
if (navigator.plugins != null && navigator.plugins.length > 0) {
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
descArray = flashDescription.split(" ");
tempArrayMajor = descArray[2].split(".");
versionMajor = tempArrayMajor[0];
versionMinor = tempArrayMajor[1];
if ( descArray[3] != "" ) {
tempArrayMinor = descArray[3].split("r");
} else {
tempArrayMinor = descArray[4].split("r");
}
versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
} else {
flashVer = -1;
}
}
// MSN/WebTV 2.6 supports Flash 4
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
// WebTV 2.5 supports Flash 3
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
// older WebTV supports Flash 2
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
// Can't detect in all other cases
else {

flashVer = -1;
}
return flashVer;
}
// If called with no parameters this function returns a floating point value
// which should be the version of the Flash Player or 0.0
// ex: Flash Player 7r14 returns 7.14
// If called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
reqVer = parseFloat(reqMajorVer + "." + reqRevision);
// loop backwards through the versions until we find the newest version
for (i=25;i>0;i--) {
if (isIE && isWin && !isOpera) {
versionStr = VBGetSwfVer(i);
} else {
versionStr = JSGetSwfVer(i);
}
if (versionStr == -1 ) {
return false;
} else if (versionStr != 0) {
if(isIE && isWin && !isOpera) {
tempArray = versionStr.split(" ");
tempString = tempArray[1];
versionArray = tempString .split(",");
} else {
versionArray = versionStr.split(".");
}
versionMajor = versionArray[0];
versionMinor = versionArray[1];
versionRevision = versionArray[2];

versionString = versionMajor + "." + versionRevision; // 7.0r24 == 7.24
versionNum = parseFloat(versionString);
// is the major.revision >= requested major.revision AND the minor version >= requested minor
if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
return true;
} else {
return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );
}
}
}
return (reqVer ? false : 0.0);
}
// -->
</script>

<!--url's used in the movie-->
<!--text used in the movie-->
<script language="JavaScript" type="text/javascript">
<!--
var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if(hasRightVersion) { // if we've detected an acceptable version
var oeTags = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
+ 'width="955" height="600"'
+ 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
+ '<param name="movie" value="loader.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />'
+ '<embed src="loader.swf" quality="high" bgcolor="#ffffff" '
+ 'width="955" height="600" name="loader" align="middle"'
+ 'play="true"'
+ 'loop="false"'
+ 'quality="high"'
+ 'allowScriptAccess="sameDomain"'
+ 'type="application/x-shockwave-flash"'
+ 'pluginspage="http://www.macromedia.com/go/getflashplayer">'
+ '<\/embed>'
+ '<\/object>';
document.write(oeTags); // embed the flash movie
} else { // flash is too old or we can't detect the plugin
var alternateContent = 'Alternate HTML content should be placed here.'
+ 'This content requires the Macromedia Flash Player.'
+ '<a href=http://www.macromedia.com/go/getflash/>Get Flash</a>';
document.write(alternateContent); // insert non-flash content
}
// -->
</script>
<noscript>
<div align="center">This content requires the latest Macromedia Flash Player.
<a href="http://www.macromedia.com/go/getflash/">Get Flash</a>
</div>
</noscript>

Source Code:

<!-- END OF HEADER -->
<div id="content"><table id="layout-table"><tr><td id="middle-column"><table class="tabs" cellspacing="0"><tr><td class="left side"></td><td><table class="tabrow r0" cellspacing="0"><tr><td class="selected"><div class="tablink">Info</div></td><td class="active"><div class="tablink"><a href="http://www.roofsafe.com.au/training/mod/quiz/report.php?q=1" title="Results">Results</a></div></td><td class="active"><div class="tablink"><a href="http://www.roofsafe.com.au/training/mod/quiz/attempt.php?q=1" title="Preview">Preview</a></div></td><td class="active"><div class="last"><div class="tablink"><a href="http://www.roofsafe.com.au/training/mod/quiz/edit.php?quizid=1" title="Edit ">Edit </a></div></div></td></tr></table></td><td class="right side"></td></tr></table><h2 class="main">Secureline Training Quiz</h2><table align="center" class="generalbox" border="0" cellpadding="5" cellspacing="0"><tr><td class="generalboxcontent"><p><div style="text-align: center;"><span style="font-weight: bold;"> <br />
Watch the following flash movie, then proceed to the multiple choice questions, which must all be answered correctly.<br /><br /></span></div><script language="JavaScript" type="text/javascript"><!-- //<br />
// -----------------------------------------------------------------------------<br />
// Globals<br />
// Major version of Flash required<br />
var requiredMajorVersion = 8;<br />
// Minor version of Flash required<br />
var requiredMinorVersion = 0;<br />
// Revision of Flash required<br />
var requiredRevision = 0;<br />
// the version of javascript supported<br />
var jsVersion = 1.0;<br />
// -----------------------------------------------------------------------------<br />
// --></script><script language="VBScript" type="text/vbscript"><!-- // Visual basic helper required to detect Flash Player ActiveX control version information<br />
Function VBGetSwfVer(i)<br />
on error resume next<br />
Dim swControl, swVersion<br />
swVersion = 0<br />
<br />
set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))<br />
if (IsObject(swControl)) then<br />
swVersion = swControl.GetVariable("$version")<br />
end if<br />
VBGetSwfVer = swVersion<br />
End Function<br />
// --></script><script language="JavaScript1.1" type="text/javascript"><!-- // Detect Client Browser type<br />
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;<br />
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;<br />
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;<br />
jsVersion = 1.1;<br />
// JavaScript helper required to detect Flash Player PlugIn version information<br />
function JSGetSwfVer(i){<br />
// NS/Opera version >= 3 check for Flash plugin in plugin array<br />
if (navigator.plugins != null && navigator.plugins.length > 0) {<br />
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {<br />
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";<br />
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;<br />
descArray = flashDescription.split(" ");<br />
tempArrayMajor = descArray[2].split(".");<br />
versionMajor = tempArrayMajor[0];<br />
versionMinor = tempArrayMajor[1];<br />
if ( descArray[3] != "" ) {<br />
tempArrayMinor = descArray[3].split("r");<br />
} else {<br />
tempArrayMinor = descArray[4].split("r");<br />
}<br />
versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;<br />
flashVer = versionMajor + "." + versionMinor + "." + versionRevision;<br />
} else {<br />
flashVer = -1;<br />
}<br />
}<br />
// MSN/WebTV 2.6 supports Flash 4<br />
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;<br />
// WebTV 2.5 supports Flash 3<br />
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;<br />
// older WebTV supports Flash 2<br />
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;<br />
// Can't detect in all other cases<br />
else {<br />
<br />
flashVer = -1;<br />
}<br />
return flashVer;<br />
} <br />
// If called with no parameters this function returns a floating point value <br />
// which should be the version of the Flash Player or 0.0 <br />
// ex: Flash Player 7r14 returns 7.14<br />
// If called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available<br />
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) <br />
{<br />
reqVer = parseFloat(reqMajorVer + "." + reqRevision);<br />
// loop backwards through the versions until we find the newest version <br />
for (i=25;i>0;i--) { <br />
if (isIE && isWin && !isOpera) {<br />
versionStr = VBGetSwfVer(i);<br />
} else {<br />
versionStr = JSGetSwfVer(i); <br />
}<br />
if (versionStr == -1 ) { <br />
return false;<br />
} else if (versionStr != 0) {<br />
if(isIE && isWin && !isOpera) {<br />
tempArray = versionStr.split(" ");<br />
tempString = tempArray[1];<br />
versionArray = tempString .split(","); <br />
} else {<br />
versionArray = versionStr.split(".");<br />
}<br />
versionMajor = versionArray[0];<br />
versionMinor = versionArray[1];<br />
versionRevision = versionArray[2];<br />
<br />
versionString = versionMajor + "." + versionRevision; // 7.0r24 == 7.24<br />
versionNum = parseFloat(versionString);<br />
// is the major.revision >= requested major.revision AND the minor version >= requested minor<br />
if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {<br />
return true;<br />
} else {<br />
return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false ); <br />
}<br />
}<br />
} <br />
return (reqVer ? false : 0.0);<br />
}<br />
// --></script><!--url's used in the movie--><!--text used in the movie--><script language="JavaScript" type="text/javascript"><!-- <br />
var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);<br />
if(hasRightVersion) { // if we've detected an acceptable version<br />
var oeTags = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'<br />
+ 'width="955" height="600"'<br />
+ 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'<br />
+ '<param name="movie" value="loader.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />'<br />
+ '<embed src="loader.swf" quality="high" bgcolor="#ffffff" '<br />
+ 'width="955" height="600" name="loader" align="middle"'<br />
+ 'play="true"'<br />
+ 'loop="false"'<br />
+ 'quality="high"'<br />
+ 'allowScriptAccess="sameDomain"'<br />
+ 'type="application/x-shockwave-flash"'<br />
+ 'pluginspage="http://www.macromedia.com/go/getflashplayer">'<br />
+ '<\/embed>'<br />
+ '<\/object>';<br />
document.write(oeTags); // embed the flash movie<br />
} else { // flash is too old or we can't detect the plugin<br />
var alternateContent = 'Alternate HTML content should be placed here.'<br />
+ 'This content requires the Macromedia Flash Player.'<br />
+ '<a href=http://www.macromedia.com/go/getflash/>Get Flash</a>';<br />
document.write(alternateContent); // insert non-flash content<br />
}<br />
// --></script><noscript><div align="center">This content requires the latest Macromedia Flash Player.<br />
<a href="http://www.macromedia.com/go/getflash/">Get Flash</a></div></noscript></p></td></tr></table><p align="center">Attempts allowed: 3</p><p align="center">Grading method: Highest grade</p><div class="notifyproblem" align="center"><a href="report.php?mode=overview&amp;id=2">4 Participants have made 8 attempts</a></div><br />

</td></tr></table>
</div> <!-- end div containerContent -->
評比平均分數: -
In reply to Josh Grant

Re: HTML Editor Javascript (again!)

uday ramakrishna發表於

Hi

We are also trying to have some custom jump menus generated using dreamweaver on the homepage and for the javascript to work we had to turn off the html editor, but this leaves the forms and other sections without an editor. Is there a way to selectively disable the editor for the homepage alone and I am not sure if this might help render the homepage javascript functionality while enabling it across the site. I installed TinyMce and had to do some good amount of work for the jump menus to appear by adding the tags to custom list but had issues get the functionality to work. Any suggestions on how to get this going?

Best Regards

Uday