gpt4 book ai didi

javascript - window.scrollTo(...) 错误 : Microsoft JScript runtime error: Object expected

转载 作者:行者123 更新时间:2023-11-28 20:41:20 25 4
gpt4 key购买 nike

我知道有很多关于此的帖子,但我一整天都在想这样做。我在这里尝试实现的是单击 GridView 中的一行,然后将页面滚动到该位置,就像 html 中的 anchor 一样。

这是我用来滚动的链接。我在 js 文件中调用一个函数。这是在我的 GridView 中。

<asp:LinkButton runat="server" OnClientClick="window.scrollTo(0, GetPosition(this))" CommandName="select" ID="InkSelect" Text="SELECT" />

然后,我在我的 js 文件中调用这个函数,像这样链接,以防万一:

<script type="text/javascript" src="~js/monjs.js"></script>

在 monjs.js 中,函数如下:

function GetPosition(element) {
var top = 0;
var e = document.getElementById(element);
while (e.offsetParent != undefined && e.offsetParent != null) {
top += e.offsetTop + (e.clientTop != null ? e.clientTop : 0);
e = e.offsetParent;
}
return top;}

Visual studio 突出显示了这一行:

...... <a onclick="window.scrollTo(0, GetPosition(this));" .....

我尝试了很多其他方法来做到这一点,在 vb 文件中注册一个脚本,在 onclick 属性中硬编码 window.scrollTo(0,100) ,我没有想法。我试过 row.focus,别提这个了。谢谢。 enter image description here

最佳答案

 <a onclick="window.scrollTo(0, GetPosition(this));" 
^
|
An Object
function GetPosition(element) {
var top = 0;
var e = document.getElementById(element);
^
|
Expecting a string

您正在传递一个对象并表现得像一个字符串。

var e = document.getElementById(element);

需要

var e = element;

如果您的函数需要处理对象或字符串,您可以使用 onclick 处理程序传入 this.id

OnClientClick="window.scrollTo(0, GetPosition(this.id))"

或者进行 typeof 检查。

 var e = typpeof element === "string" ? document.getElementById(element) : element;

关于javascript - window.scrollTo(...) 错误 : Microsoft JScript runtime error: Object expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14347537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com