Avatar billede xero Nybegynder
31. januar 2001 - 18:35 Der er 10 kommentarer og
1 løsning

Skjult frame som smidder input op +på en dynamisk side.

Hej.
Jeg er ved at lave en chat, som kan lidt af det hele.. :o)
Jeg vil så høre om der er nogle som kan en trick hvor at man poster til en skjult frame, hvorefter den smidder det op på en dynamisk side, så det kommer til at være rimlig realtime.. Nogle ideer?
Avatar billede tdaugaard Nybegynder
31. januar 2001 - 18:40 #1
Jeg har lavet selv samme trick på min egen chat. Jeg finder lige noget frem du muligvis kan bruge...
Avatar billede tdaugaard Nybegynder
31. januar 2001 - 18:44 #2
Det her virker KUN i Internet Explorer pga. document.readyState og .innerHTML ikke findes i NS.
I indholdsframen laver du et <div name=\"cnt\" style=\"width: 500px; height: 250px;\"></div>



    <script language=\"JavaScript\">
        <!--
        var contentTimer;
        var userTimer;
        var expirTimer;
        var msgTimer;
   
        window.onerror=handleerr;
       
        function handleerr() {
            contentTimer=setTimeout(\"showcontent();\", 1000);
            userTimer=setTimeout(\"showuserlist();\", 1000);
            expirTimer=setTimeout(\"showexpiration();\", 1000);
            msgTimer=setTimeout(\"update_users();\", 1000);
        }
       
        function showcontent() {
            var cnt = \"<%=strChatContent%>\";

            if (parent.view.document.readyState == \"complete\") {
                parent.view.cnt.innerHTML = cnt;
                clearTimeout(contentTimer);
            } else {
                contentTimer=setTimeout(\"showcontent();\", 1000);
            }
        }

        function showuserlist() {
            var users = \"<%=strUserString%>\";

            if (parent.users.document.readyState == \"complete\") {
                parent.users.userlist.innerHTML = users;
                clearTimeout(userTimer);
            } else {
                userTimer=setTimeout(\"showuserlist();\", 1000);
            }
        }
   
        function showexpiration() {
            if (parent.header.document.readyState == \"complete\") {
                parent.header.expir.value=\"Expiration time 00:<%=strTime%>\";
                clearTimeout(expirTimer);
            } else {
                expirTimer=setTimeout(\"showexpiration();\", 1000);
            }
        }

        function update_users() {
            var items = new Array();

            if (parent.message.document.readyState == \"complete\") {
                items[0] = \"new Option(\'(All)\', \'(All)\', false, false)\";
                <%=strSelUsers%>

                var selIndex = parent.message.frmControl.writeto.selectedIndex;

                if (selIndex > -1 ) var selectedUser = parent.message.frmControl.writeto.options[selIndex].value;
                if (selIndex==-1) selIndex=0;
                if (selIndex > parent.message.frmControl.writeto.options.length-1) selIndex=0;

                parent.message.frmControl.writeto.options.length = 0;
                       
                for (var index=0; index<items.length; index++) {
                    parent.message.frmControl.writeto.add(eval(items[index]));
                }
                       
                for (var index=0; index<parent.message.frmControl.writeto.options.length;index++) {
                    if (parent.message.frmControl.writeto.options[index].value == selectedUser) selIndex = index
                }

                parent.message.frmControl.writeto.selectedIndex=selIndex;
                clearTimeout(msgTimer);
            } else {
                msgTimer=setTimeout(\"update_users();\", 1000);
            }
        }
       
        showcontent();
        showuserlist();
        showexpiration();
        update_users();
        -->
    </script>
Avatar billede tdaugaard Nybegynder
31. januar 2001 - 18:46 #3
update_users() opdaterer en <select></select> drop-down med en liste over usernames.
showcontent() opdaterer indholds layeret (div\'et)
showuserlist() opdatere en \"brugere logget ind\" frame (også et DIV layer)
Avatar billede xero Nybegynder
31. januar 2001 - 18:47 #4
Tdaugaard.. Har du ikke ICQ?
Avatar billede tdaugaard Nybegynder
31. januar 2001 - 18:48 #5
Det javascript jeg har lagt her skal lægges som indhold i den skjulte frame.
Avatar billede tdaugaard Nybegynder
31. januar 2001 - 18:48 #6
xero:> det har jeg da : 4033867
Avatar billede xero Nybegynder
31. januar 2001 - 18:50 #7
Er nemlig ikke så meget inde i DHTML...
Avatar billede olebole Juniormester
01. februar 2001 - 21:31 #8
<ole>
Det er da skod, det ikke er skrevet X-browser! Come on, tdaugaard! :)
/mvh
</bole>
Avatar billede tdaugaard Nybegynder
01. februar 2001 - 21:33 #9
olebole:> Ligner jeg måske en der kan svare ja til flg.:

1. Har Netscape installeret
2. Gives a damn about Netscape
3. Kan finde ud af JavaScript

??

;o)
Avatar billede tdaugaard Nybegynder
01. februar 2001 - 21:34 #10
Ret nr. 3 til \"Kan finde ud af X-browser JavaScript\"
Avatar billede olebole Juniormester
01. februar 2001 - 22:42 #11
=8-O  ...EN HEDNING...!!!!!!!!!!!!!!!!!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester