【问题标题】:Return function of a PageMethod not executing in Firefox未在 Firefox 中执行的 PageMethod 的返回函数
【发布时间】:2012-08-21 12:47:39
【问题描述】:

我在 Firefox 中使用 JS 函数时遇到了一点问题。预期的结果(在 IE 和 Chrome 中相应地工作)是执行服务器端代码并​​在 LoadDetails 函数中返回一个数组。

function ShowEvent(index) {
    PageMethods.LoadDetailsEvent(index, LoadDetails);
}
function LoadDetails(val) {
    document.getElementById('lblName').innerText = val[0];
    document.getElementById('lblDate').innerText = val[1];
    document.getElementById('lblTime').innerText = val[2];
    document.getElementById('lblPlace').innerText = val[3];
    document.getElementById('lblDescription').innerText = val[4];
    $find('mpeShowEvent').show();
}

在其他浏览器中,数据已正确加载到标签中,但在 Chrome 中,它们以默认值显示。

我在这里错过了什么?

【问题讨论】:

    标签: javascript asp.net firefox cross-browser


    【解决方案1】:

    innerText 是 Internet Explorer 首次引入的非标准属性。标准属性是textContent,但您至少需要 IE9。或者,您可以使用为您处理差异的跨浏览器 JavaScript 库之一。另一种方法是直接更改子文本节点的数据。

    【讨论】:

    • innerHTML 是否也可以工作,或者我是否会有其他跨浏览器兼容性问题?
    • @luisten 如果您可以确定没有任何值包含任何由 HTML 特殊处理的字符,我认为 innerHTML 将是另一种可能的解决方法。它当然有很好的跨浏览器支持。
    【解决方案2】:

    Firefox 使用 W3C-compliant textContent 属性。这就是你的问题..

    【讨论】:

      猜你喜欢
      • 2019-08-30
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      • 2015-07-27
      • 2018-01-19
      • 1970-01-01
      相关资源
      最近更新 更多