当通过js添加HTML元素时,阻止IE跳转到页面顶部

时间:2017-02-20 08:40:47

标签: javascript jquery html internet-explorer

我有一个带有ASP的页面:网格,每行都有一个小的复制按钮,用于复制单元格内的文本。为了复制文本,我编写了以下javascript函数:

var copyText = function (p_text) {
  $(".copy").append("<textarea id='test'></textarea>");
  $("#test").val(p_text);
  var cutTextarea = document.querySelector("#test");
  cutTextarea.select();
  document.execCommand("copy");
  $("#test").remove();
}

它在Firefox和Chrome中运行得非常好。复制也适用于IE11,除了它总是跳到页面的顶部,这真的很烦人。在Firefox和Chrome中,它保持在滚动位置。 我看到了一些类似的问题,并尝试在添加我的textarea之前保存当前位置,并在函数末尾滚动这些行:

var selectTop = $("body").offset().top;
$("body").scrollTop(selectTop);

$(&#34; body&#34;)。offset()。top返回0,因此不起作用。 我找到了一些其他可能的解决方案但是无法实现它们以便它们适用于我的情况。希望有人能给我一个有效的解决方案:)

提前致谢!

1 个答案:

答案 0 :(得分:0)

我只是在寻找类似答案(同时具有复制/粘贴功能)时偶然发现了这个问题,所以即使它已经3岁了,这也是我终于设法解决的方法:

我很幸运(我猜想吗?)有一个位置:在我的页面中可以访问固定div。因此,在创建元素时,我确保将大小设置为零,并将其附加到固定的div上,这意味着不会发生滚动。最终结果是这样的:

x=table(mydata$class)
class=names(x)
y=mydata[mydata$class==class[1],]
y=y[order(y$weight,decreasing=TRUE),]
y=head(y,3)

z=mydata[mydata$class==class[2],]
z=z[order(z$weight,decreasing=TRUE),]
z=head(z,3)

w=mydata[mydata$class==class[3],]
w=w[order(w$weight,decreasing=TRUE),]
w=head(w,3)

我希望可以帮助某人!