open source javascript project - trouble with document.getElementById

L

lawrence

This PHP function prints out a bunch of Javascript (as you can see).
This is all part of the open source weblog software of PDS
(www.publicdomainsoftware.org). We had this javascript stuff working,
but it only worked for IE. You can see a working version here:

http://www.publicpen.com/designer/mcControlPanel.php
username: designer
password: designer123

However, I've tried to rewrite this so it would work in all browsers,
and now it is broken and working in none. I don't know much about
Javascript, but if any of the gurus here would like to donate some
time to an open source project, we could use the help. Can you tell me
what here is generating an error?









function elementsAdminShowFormattingButtons($id=false) {
// 05-04-04 - we want to print out some Javascript and some buttons.
// 06-10-04 - I've modified the functions so, hopefully, they will
work with
// more than just the InternetExplorer browser. I'm new to
Javascript, so
// it's a gamble.

$controllerForAll = & getController();
$config = getConfig();
$path = $config["imagesFolder"];

echo "
<script language=\"javascript\">
function insertAtCursor(myField) {
var imageName;
var path;
var myValue;
var status;
var myField;

myField = document.getElementById['inputId3'];
imageName = document.getElementById['imagesToInsert'].value;

path = '$path';
myValue = path+imageName;

status = myValue + ' - ' + myField;
window.status= status;

//IE support
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
} else if (myField.selectionStart || myField.selectionStart ==
'0') {
//MOZILLA/NETSCAPE support
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos) + myValue +
myField.value.substring(endPos, myField.value.length);
} else {
myField.value += myValue;
}
}

function wrapSelectionBold (element) {
var range = document.selection.createRange();
if (range.parentElement() == element) {
range.text = '<b>' + range.text + '<\/b>';
} else {
var previousText;
previousText = document.getElementById[element].value;
document.getElementById[element].value = '<b>' + previousText +
'<\/b>';
alert('We did not find any selected text (only possible in some
browsers). We made all the text bold.');
}
}
function wrapSelectionItalic (element) {
var range = document.selection.createRange();
if (range.parentElement() == element) {
range.text = '<i>' + range.text + '<\/i>';
} else {
var previousText;
previousText = document.getElementById[element].value;
document.getElementById[element].value = '<i>' + previousText +
'<\/i>';
alert('We did not find any selected text (only possible in some
browsers). We made all the text italic');
}
}
function wrapSelectionBlockQuote (element) {
var range = document.selection.createRange();
if (range.parentElement() == element) {
range.text = '<blockquote>' + range.text + '<\/blockquote>';
} else {
var previousText;
previousText = document.getElementById[element].value;
document.getElementById[element].value = '<blockquote>' +
previousText + '<\/blockquote>';
alert('We did not find any selected text (only possible in some
browsers). We wrapped all the text in a block quote');
}
}
function wrapSelectionBigHeadline (element) {
var range = document.selection.createRange();
if (range.parentElement() == element) {
range.text = '<h1>' + range.text + '<\/h1>';
} else {
var previousText;
previousText = document.getElementById[element].value;
document.getElementById[element].value = '<h1>' + previousText +
'<\/h1>';
alert('We did not find any selected text (only possible in some
browsers). We wrapped all the text in a big headline');
}
}
function wrapSelectionSmallHeadline (element) {
var range = document.selection.createRange();
if (range.parentElement() == element) {
range.text = '<h4>' + range.text + '<\/h4>';
} else {
var previousText;
previousText = document.getElementById[element].value;
document.getElementById[element].value = '<h4>' + previousText +
'<\/h4>';
alert('We did not find any selected text (only possible in some
browsers). We wrapped all the text in a small headline');
}
}
function wrapSelectionAllowFileLists (element) {
var range = document.selection.createRange();
var address;
// 06-10-04 - this next bit is to avoid tripping the PHP parser.
Potential PHP bug.
address = '<';
address += '?php showFileInfoLists(); ?';
address += '>';
if (range.parentElement() == element) {
range.text = range.text + address;
} else {
var previousText;
previousText = document.getElementById[element].value;
document.getElementById[element].value = range.text + address;
alert('We did not find any selected text (only possible in some
browsers). We added the special code to the end of the text.');
}
}
function wrapSelectionAllowImageLists (element) {
var range = document.selection.createRange();
var address;
// 06-10-04 - this next bit is to avoid tripping the PHP parser.
Potential PHP bug.
address = '<';
address += '?php showImageInfoLists(); ?';
address += '>';
if (range.parentElement() == element) {
range.text = range.text + address;
} else {
var previousText;
previousText = document.getElementById[element].value;
document.getElementById[element].value = range.text + address;
alert('We did not find any selected text (only possible in some
browsers). We added the special code to the end of the text.');
}
}
function wrapSelectionMakeALink (element) {
var range = document.selection.createRange();
address = prompt('What address?', '');
address = '<a href=\\\"' + address + '\\\">';
if (range.parentElement() == element) {
range.text = address + range.text + '<\/a>';
} else {
var previousText;
previousText = document.getElementById[element].value;
document.getElementById[element].value = address + 'See the
page<\/a>' + previousText;
alert('We did not find any selected text (only possible in some
browsers). We added the link to the beginning of the text.');
}
}
function wrapSelectionInsertImage (element) {
var range = document.selection.createRange();
address = prompt('Add address for image. If the image is on your
site, look in Image Info.', '');
address = '<img src=\\\"' + address + '\\\">';
if (range.parentElement() == element) {
range.text = address + range.text;
} else {
var previousText;
previousText = document.getElementById[element].value;
document.getElementById[element].value = address + previousText;
alert('We did not find any selected text (only possible in some
browsers). We added the image to the beginning of the text');
}
}
</script>
";

echo "<input type=\"button\" value=\"bold\"
onclick=\"wrapSelectionBold(this.form.inputId".$id.")\" /> \n";
echo "<input type=\"button\" value=\"italic\"
onclick=\"wrapSelectionItalic(this.form.inputId".$id.")\" /> \n";
echo "<input type=\"button\" value=\"block indent\"
onclick=\"wrapSelectionBlockQuote(this.form.inputId".$id.")\" /> \n";
echo "<input type=\"button\" value=\"big headline\"
onclick=\"wrapSelectionBigHeadline(this.form.inputId".$id.")\" /> \n";
echo "<input type=\"button\" value=\"small headline\"
onclick=\"wrapSelectionSmallHeadline(this.form.inputId".$id.")\" />
\n";
echo "<input type=\"button\" value=\"allow image lists\"
onclick=\"wrapSelectionAllowImageLists(this.form.inputId".$id.")\" />
\n";
echo "<input type=\"button\" value=\"allow file lists\"
onclick=\"wrapSelectionAllowFileLists(this.form.inputId".$id.")\" />
\n";
echo "<input type=\"button\" value=\"make a link\"
onclick=\"wrapSelectionMakeALink(this.form.inputId".$id.")\" /> \n";
flush();

$controllerForAll = & getController();
$forms = & $controllerForAll->getObject("McFormsGetImages", " in
elementsAdminEditImage01().");
$arrangementObject = & $controllerForAll->getObject("McArrangements",
" in elementsAdminEditImage01().");

$controlPanelCbId = $GLOBALS["controlPanelCbId"];
$cbId = $controlPanelCbId;
if (!$cbId) {
$cbId = $arrangementObject->getControlPanelCbId();
}

$forms->getChoicesForInput();
$forms->setChoicesIntoArray();


$field = $forms->returnCurrentValueForThisField($cbId,
"cbModifier01");
$visible = $field;
$value = $field;

$forms->setValueForCurrentField($visible, $value);
$forms->putIntoArrayForJavascriptInsert();
echo " <br>Insert an image: ";
$forms->printSelect();


}





?>
 
V

Vincent van Beveren

However, I've tried to rewrite this so it would work in all browsers,
and now it is broken and working in none. I don't know much about
Javascript, but if any of the gurus here would like to donate some
time to an open source project, we could use the help. Can you tell me
what here is generating an error?

I took a peek at it, and I did find one problem

location = document.body.scrollTop;
if (location == 0) location = document.documentElement.scrollTop;
if (location == 0) location = window.pageYOffset;
document.getElementById('scrollmenu').style.pixelTop = location;

'location' is a name of the location object. Modifiying it will
cause it to attempt to go to that location. Renaming location
to another name will cause Netscape 6 & 7 not to jump to
designer/0 all the time. The rest looks good to me, but I haven't
been able to test it much yet. What goes wrong in IE, cause thats
working for me too.

good luck,
Vincent
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top