【问题标题】:Set the bgcolor attribute value设置 bgcolor 属性值
【发布时间】:2011-10-11 03:30:32
【问题描述】:

以下不起作用:

<!DOCTYPE HTML>
<title>Test</title>
<embed id="foo" src="http://www.w3schools.com/media/bookmark.swf" width="400" height="40" type="application/x-shockwave-flash" />

<script type="text/javascript">
document.getElementById("foo").setAttribute("bgcolor", "#00FF00");
</script>

但是如果你把 setAttribute 改成 ("width", "800") 就没有问题了!我错过了什么?

感谢任何帮助!

迈克

【问题讨论】:

    标签: javascript flash


    【解决方案1】:

    就像 Nael 说的 background-color 是一种风格。除了使用 setAttribute 更新现有样式属性非常困难之外,这也是not very reliable。如果您计划做更多涉及的事情,请认真考虑 JavaScript 库。

    【讨论】:

    • setAttribute 方法有替代方法吗?
    • 是的,当然,使用YUI DOM package,它非常小,并为您提供了用于操作 DOM 元素的广泛 API。看看上面链接上的示例。您将看到使用 addClass 的示例。
    • 我看到了参考并学习了如何添加类等。但我找不到与添加/更改属性相关的任何内容。
    • @Rain - 抱歉,我以为您只想更改样式属性。如果要更改其他属性,请使用YUI Element。 YUI Element 扩展了 YUI DOM,所以基本上你可以做 var el = new YAHOO.util.Element('foo') 然后简单地做 el.set('id','myid1') 来改变一个属性。使用 YUI 元素你也可以做el.addClass('myclass')(那是因为 YUI 元素扩展了 DOM)
    【解决方案2】:

    根据to the specification embed 具有width 属性但没有bgcolor 属性。

    无论如何它是一个替换元素,所以无论它是什么颜色,它都会从 Flash 对象中获取。

    【讨论】:

    • 那么如何在不使用 setAttribute 方法的情况下更改属性值?有什么选择吗?
    【解决方案3】:
    document.getElementById("foo")
                             .setAttribute("style", "background-color: #00FF00;");
    

    width 是一个属性。 background-color 是一种样式,应该这样放置

    【讨论】:

    • 感谢您的回答,但它们是两个不同的东西。要了解我的意思,请尝试将 bgcolor="#00FF00" 添加到嵌入代码中,并将其与更改样式背景颜色进行比较。
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2019-07-20
    • 2017-10-14
    • 2013-05-14
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多