我有以下代码,应将标签更新为“ please wait ..”,然后运行一个函数,然后再次更新标签以表示已完成:

<asp:Button ID="Button1" runat="server" Text="Upload"
                    onclientclick="document.getElementById('errorMessage').innerText='Please Wait...';"
                    onclick="Button1_Click"  />


在IE中可以正常工作,但在Firefox中则不能。

当我在Firefox中运行它时,标签不会更改,直到过程完成。

有没有办法在运行C#函数之前强制javascript更新页面?

最佳答案

innerText属性是Internet Explorer的专有功能。在Firefox和其他DOM兼容浏览器中,使用textContentlink)。

以下代码将测试浏览器支持哪个属性,并使用适当的属性:

var node = document.getElementById('errorMessage');
var errorMessage = 'Please Wait...';
if (typeof node.innerText !== 'undefined')
  node.innerText = errorMessage;
else
  node.textContent = errorMessage;


如果您的站点将包含大量JavaScript,则强烈建议您使用第三方库(例如jQuery)来为您解决这些浏览器不兼容的问题。

关于c# - IE和Mozilla Firefox之间的Javascript行为差异?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2022457/

10-12 22:28