回发时更新Javascript函数内容
Update Javascript function content on postback
这是我的代码
<script type="text/javascript">
function getNextScroll(i){
<asp:Literal ID="infiniteScrollTableJS" runat="server"></asp:Literal>
}
</script>
我正在用CodeBehind中的一些Javascript填充Literal。这在加载时效果很好。然而,当我回发邮件时,我遇到了一个问题。回发时更新Literal。函数中的实际脚本实际上发生了更改(我可以在Firebug中看到它)。但是,函数并没有意识到其中有新的脚本,它只是继续运行旧的东西。
据我所知,我想在回发后"重新初始化"函数内部的代码。
我知道如何使用add_endRequest在回发后调用函数。
这个问题不是.NET或其他任何东西独有的。事实上,我在这里有一个简单的例子->http://jsfiddle.net/7JxY7/1/即使脚本内容发生更改,"Run Function"也将始终提醒"one"。
我觉得jQuery可能有一些我可以使用的东西,但四处搜索却一无所获。
编辑:
我尝试了mblase75的建议。这在Javascript中非常有效(更重要的是,现在我明白了为什么),然而,考虑到这种方法,我仍然无法让它与回发一起工作。这是我更新的代码。
<script type="text/javascript">
function getNextScroll(i){
//some stuff
}
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function (s, e) {
//mblase75 suggestion
getNextScroll = function (i){<asp:Literal ID="infiniteScrollTableJS" runat="server"></asp:Literal>};
});
</script>
我原以为这会奏效,但当然,它和我原来的方法有同样的问题。Literal实际上已经更改,但函数不知道更改,它仍然有原始代码
在JavaScript中,函数实际上是一个对象。因此,与其尝试用字符串重写<script>
元素,不如将函数(变量)名称替换为新的函数对象:
<script>
goTest = function(){
alert('one');
}
function changeTest1(){
goTest = function(){alert('two');};
alert('ok');
}
</script>
<a onclick="goTest();">Run Function</a><br/>
<a onclick="changeTest1();">Change Function</a>
http://jsfiddle.net/7JxY7/2/
相关文章:
- 从函数JavaScript返回不可变数组/对象
- 将对象传递给函数.JavaScript
- 如何定义const函数javascript(语法糖)
- 新的日期函数javascript
- TypeError:this.getAttribute不是一个函数-javascript
- 从函数javascript发送变量
- 扩展自容器函数Javascript
- 从内部函数javascript内部分配外部函数的对象
- 使用函数JavaScript中的函数
- 在这里使用回调函数(JavaScript)有什么好处吗
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 将“e”传递给一个新函数 - javascript
- 调用函数中的一个函数——Javascript
- 传递的变量不适用于我的函数-Javascript
- 如何将类方法设置为等于多个函数?-Javascript
- 显示php中的函数javascript
- 如何使用php代码创建函数Javascript弹出框
- 未调用的外部函数-javascript
- 如何在类中运行函数.Javascript
- 关闭mouseover上的一个函数——Javascript,jQuery