0
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"         
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     <html>
    <head>
    <meta http-equiv="Cache-control" content="no-cache">
    <meta http-equiv="Pragma"  content="no-cache">
    <meta http-equiv="Expires" content="-1">

        <Script language = JavaScript>
            function addOptionList(selectbox,text,value )
            {
                var optn = document.createElement('OPTION');
                optn.text = text;
                optn.value = value;
                selectbox.options.add(optn);
            }
            function removeOptionList(listbox,i){
                listbox.remove(i);
            }
            function addOption_list(fromvar,tovar){ 
                for(i=fromvar.options.length-1;i>=0;i--)    {
                    var userlist=fromvar;
                    if(fromvar[i].selected){
                        addOptionList(tovar, fromvar[i].value, fromvar[i].value);
                        removeOptionList(userlist,i);

                    }
                }
            }

        </Script>

    <table align='center'>
        <tr>
            <td ><select multiple name='userlist' id='userlist' >
                <option value='aaa'>aaa</option>
                <option value='bbb'>bbb</option>                
            </select></td>
            <td align='center' valign='middle'>
                <input value='--&gt;'  
                     onClick='addOption_list(userlist,pouser);' type='button'>
                <br><input value='&lt;--' 
                     onClick='addOption_list(pouser,userlist);' type='button'></td>
            <td><select multiple  name='pouser' id='pouser'>
                <option id='test' value='ccc'>ccc</option>              
            </select></td>
        </tr>
    </table>
</body>
</HTML>

上記のコードを使用して、左のボックスから名前を選択し、右のボックスに移動しています。コードは DOCTYPE の有無にかかわらず IE で動作しています。しかし、DOCTYPE を使用すると、Firfox で動作しなくなります。私はそれに多くの時間を費やしましたが、それでも問題を理解できませんでした。また、私はJavascriptの初心者なので、以下のコードの問題を説明してください(DOCTYPEを使用している場合)。よろしくお願いします。

4

2 に答える 2

1

ウィンドウにグローバル プロパティとして表示される ID を持つ要素に依存しています (例: userlist)。Firefox は quirks モードでのみこれを行うため、doctype が重要になります。

于 2012-04-06T01:42:10.383 に答える
0

マークアップが DOCTYPE と一致しません。つまり、有効な XHTML 1.0 マークアップを使用していません。

コードを xhtml バリデーターに貼り付けると、何が問題なのかが表示されます。

于 2012-04-05T19:50:04.470 に答える