我正在使用 Silverlight 应用程序,当加载到浏览器中时,它会设置一个带有值的 html<param>
标记(位于 silverlight<object>
标记内)。稍后在执行 SL 应用程序期间,我需要更改 <param>
标签。我试图通过简单地调用一个客户端javascript函数来实现这一点,该函数通过它的id获取param标签,然后调用objById.setAttribute(value,"my new value")。这就是奇怪的地方。根据将属性设置为新值后显示属性值的警报消息,以这种方式设置属性似乎有效。但是,当我在关闭警报对话框后在浏览器上查看源代码时,我仍然会在网页源代码中看到旧值。知道为什么源视图不会显示新值吗?param 标记确实有一个runat="server"
属性,因为它最初是由 Silverlight 应用程序在加载时设置的。runat=server 属性在这里会导致问题吗?
HTML:
<div id="silverlightControlHost">
<object id="silverlightObject" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param .../>
<param .../>
<param .../>
<param name="initParams" id="Ip" runat="server" />
...
Javascript:
function refreshInitParams(newParams) {
var slObjIp = document.getElementById("Ip");
//Display Initial Value
alert(slObjIp.getAttribute("value").toString());
//Set New Value
slObjIp.setAttribute("value", "New Value");
//Display new value
alert(slObjIp.getAttribute("value").toString());
}