That is not good programing, you should avoid .write statements. And may i recommend using a modal window instead of opening a popup winow?
On Dec 29, 6:49 pm, popcans <[email protected]> wrote: > I am creating an instant messenger chat application. I have a roster > window, and when I click on a member of the roster to send them a > message it opens a chat window. I use the function below to create the > chat window. This function returns an object with references to all > the elements I need to work with. Every browser seems to work fine, > except of course for Internet Explorer. IE won't let me insert > anything into the elements. I could, oddly enough get it to allow me > to set the text of an element, but I couldn't get the elements to > adopt any new elements. Not sure if this is enough information, but I > would appreciate any help anyone can give. > > function buildChatWindow(recipient) > { > /** open a new window for the chat application */ > if (!chatWindow || chatWindow.closed){ > /** create the window */ > chatWindow = window.open('', 'IV5_Chat', > 'scrollbars=1,toolbar=0,menubar=0,resizable=1,status=0,location=0,left=250, > top=50,width=500,height=400'); > > /** get the document */ > doc = chatWindow.document; > doc.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 > Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- > transitional.dtd"><html xmlns="http://www.w3.org/1999/ > xhtml"><head><meta http-equiv="Content-Type" content="text/html; > charset=UTF-8" /><title>IV5 Chat</title><!-- Load Chat Styles And > Javascript --><link rel="stylesheet" media="screen" type="text/css" > href="/css/IV5.css" /><link rel="stylesheet" media="all" type="text/ > css" href="/apps/Chat/Assets/css/Chat.css" /></head><body><div > id="Chat_ListArea"><ul id="Chat_List"></ul></div><div > id="Chat_MessageArea"></div><div id="Chat_TextArea"><textarea > id="Chat_Text" cols="1" rows="2"></textarea><input type="hidden" > id="Chat_Recipient" value="" /></div></body></html>'); > doc.close(); > } else doc = chatWindow.document; > > /** give the window focus */ > chatWindow.focus(); > > /** get the element references */ > head = $(doc.getElementsByTagName('head')[0]); > title = $(doc.getElementsByTagName('title')[0]); > body = $(doc.getElementsByTagName('body')[0]); > chatListArea = $(doc.getElementById('Chat_ListArea')); > chatList = $(doc.getElementById('Chat_List')); > chatMessageArea = $(doc.getElementById('Chat_MessageArea')); > chatTextArea = $(doc.getElementById('Chat_TextArea')); > chatText = $(doc.getElementById('Chat_Text')).removeEvents().addEvent > ('keypress', function(e){ > event = new Event(e); > if (!event.shift && event.key == 'enter' && this.value.length > > 0){ > sendMessage(chatRecipient.value, chatText.value, > chatMessageArea); > } > }).addEvent('keyup', function(e){ > event = new Event(e); > if (!event.shift && event.key == 'enter' && this.value.length > > 0) > this.value = ''; > }); > chatRecipient = $(doc.getElementById('Chat_Recipient')); > > /** check for recipient */ > if (recipient) chatRecipient.value = recipient; > > /** set the focus on the textarea */ > (function(){ chatText.focus(); }).delay(1000); > > /** return the parts */ > return {'head': head, 'title': title, 'body': body, 'chatListArea': > chatListArea, 'chatList': chatList, 'chatMessageArea': > chatMessageArea, 'chatTextArea': chatTextArea, 'chatText': chatText, > 'chatRecipient': chatRecipient}; > > }
