0

そのため、10 ~ 12 年前のコードを Chrome と互換性を持つように更新する作業を行っていますが、既に行き詰まっています。なんらかの理由で、数字を入力して「fillPO」ボタンをクリックすると、何も更新されず、代わりに「null」がボックスに入力されます。これは Internet Explorer で意図したとおりに機能します。これをクロムで動作させるための一般的なルールはありますか?

<xsl:template name="control-row">
    <xsl:if test="$orderApprove='true' and $isSuperUser='false' and $archiveView='false' ">
        <td nowrap="true" colspan="10">
            <input type="button" name="servlet" value="Approve" onClick="return approveOrder();">&nbsp;checked orders</input>
            <xsl:if test="/poursxml/OrderedFields/Field='PO'">
                &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
                Fill PO number across orders:&nbsp;
                <input type="text" name="genericPO" id = "genericPO" size="15" maxlength="30"/>
                &nbsp;
                <input type="button" value=" Fill PO " onclick="fillPO()"/>
            </xsl:if>
        </td>
    </xsl:if>
</xsl:template>

これは、javascript の fillPO() です。

function fillPO()
{
    if(!anySelected())
        alert('Please select an order first.');
    else
    {
        dfa = document.getElementsByName('orderNumber');
        len = dfa.length;
        var ix = 0;
        for(ix=0; ix<len; ix++)
        {
            if(dfa[ix].name == 'orderNumber')
            {
                if(dfa[ix].checked == true)
                {
                    el_id = dfa[ix].id;
                    position = el_id.substring(11);
                    document.getElementById('PONumber' + position).innerHTML = '<input size="15" maxlength="30" type="text" name="PONumber" value="' + document.getElementById('genericPO').getAttribute('value') + '"></input>';
                }
            }
        }    
    }
} 
4

2 に答える 2

1

投稿されたコードフラグメントには(少なくとも私にとっては)明らかな問題がないためです。ここにいくつかのデバッグのヒントがあります (少し役立つかもしれません):

  • 生成された html を見て (おそらくコピーしてフォーマットして)、IE で生成された html と比較することを検討してください。これは、chrome デバッガーの Elements タブで行うことができます。
  • 動作していない可能性のある JavaScript 関数にブレークポイントを設定してみてください。
  • それでも解決しない場合。おそらくサーバー側で生成されたxmlをコピーすることを検討してください。これは、Chrome デバッガーの [ネットワーク] タブで実行できます。xml を縮小してオフラインでテストし、問題の原因となっている部分を見つけてください。
  • デバッグが期待どおりに機能しない場合。console.log("test point");oralert()の呼び出しを JavaScript に追加します。

(.. 続くかもしれません..)

于 2013-04-23T06:12:26.983 に答える