2

次の doctype を持つ HTML ページがあります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

ただし、HTML には次のタグが含まれています。

<applet src="blahblah"></applet>

(編集: 実際には、HTML にはアプレットが含まれていません。アプレットは、他の JavaScript コードによって動的に作成されます)。

はい、それappletが非推奨であることはわかっています。appletタグにsrc属性を含めることはできませんが、その HTML コードを編集することはできません。

問題は、次の Javascript コードです。

alert(appletElement.getAttribute('src'));

FF と Chrome では「blahblah」と表示されますが、IE8 では と表示されますnull。また、appletElement.attributes['src']定義されていません。

src厳密モードでIE8で属性を取得する方法を知っている人はいますか?

ありがとう

4

3 に答える 3

3
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
                               "http://www.w3.org/TR/html4/strict.dtd">
<title>Test Case</title>
<applet id="myapplet" src="blahblah"></applet> 
<script>
var aplt = document.getElementById('myapplet');
alert(aplt.getAttribute('src'));
</script>

IE8で動作します。

于 2010-10-06T13:01:59.250 に答える
0

私は解決策を見つけました。

これらのアプレットを動的に作成する代わりに、次のdocument.createElement関数を使用します。

function wrs_createElement(elementName, attributes, creator) {
    if (attributes === undefined) {
        attributes = {};
    }

    if (creator === undefined) {
        creator = document;
    }

    var element;

    /*
     * Internet Explorer fix:
     * If you create a new object dynamically, you can't set a non-standard attribute.
     * For example, you can't set the "src" attribute on an "applet" object.
     * Other browsers will throw an exception and will run the standard code.
     */

    try {
        var html = '<' + elementName + ' ';

        for (var attributeName in attributes) {
            html += attributeName + '="' + attributes[attributeName].split('"').join('\\"') + '" ';
        }

        html += '>';
        element = creator.createElement(html);
    }
    catch (e) {
        element = creator.createElement(elementName);

        for (var attributeName in attributes) {
            element.setAttribute(attributeName, attributes[attributeName]);
        }
    }

    return element;
}
于 2010-10-07T10:49:20.380 に答える
0

やってみました

appletElement.src
于 2010-10-06T13:28:54.097 に答える