这个问题在这里已有答案:
假设这个html文件只有一个按钮。
在JavaScript文件中(添加到html文件中),jQuery用于为按钮提供单击功能并执行:
window.open('some-url');
此代码在新页面中打开URL,但我希望能够对该页面执行任何操作,无论是关闭它还是将其滚动到某个位置。
我想到这样做:
var web = window.open('some-url');
web.scrollTo(0,400);
但是,这段代码不会在新打开的链接中滚动到400的y位置。有没有办法可以让'窗口'不是'this'而是some-url窗口?
最简洁的答案是不。
答案很长,因为如果你可以在另一个网站上执行脚本,这将是一个巨大的安全漏洞。大多数网站将重要的内容部分与跳转链接https://blog.hubspot.com/marketing/jump-link-same-page相关联。
基本上该网站有一个带有ID属性的锚标签,该ID属性可以在网址中引用,如https://www.some-ur.com/test#jump-to-id
似乎window.open确实支持第三个参数,你可以在其中指定一个顶部值以及https://www.w3schools.com/jsref/met_win_open.asp
使用简单锚标记
id="abc"
<a href="#abc"></a>
用Javascript
当前窗口
这个很容易。窗口将始终引用当前窗口。新的弹出窗口
如果您使用窗口打开一个窗口。打开,您将获得对您打开的窗口的引用。
var newWin = window.open('https://www.google.com', 'windowName');
现有的弹出窗口
如果有人用window.open打开了一个弹出窗口,并且你知道他们使用的窗口名称,你可以通过调用window来获取该窗口的句柄。打开时不使用空字符串作为URL,并使用相同的名称。
var existingWin = window.open('', 'windowName');
如果弹出窗口是从同一域上的不同帧打开的话,这甚至可以工作。
在现代浏览器中,如果窗口是从不同域上的不同帧打开的话,这甚至可以工作。但要注意 - 这可能会导致IE中出现一些奇怪的行为。
弹出Windows,因为它们打开
如果您正在编写库并且需要保留由任何其他库或javascript代码打开的弹出窗口集合,则可以使用修补程序window.open:
var windows = [];
var winOpen = window.open;
window.open = function() {
var win = winOpen.apply(this, arguments);
windows.push(win);
return win;
};
首先,你为什么要那样做?
其次,您在400 y位置引用的页面上是否有内容?我知道这个问题听起来很愚蠢,但我不得不问b / c它对我有用。
复制/粘贴这个:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to open a new window called "MsgWindow" with some text.</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var myWindow = window.open("", "MsgWindow", "width=200,height=600");
myWindow.document.write("<p>This is 'MsgWindow'. I am 200px wide and 900px tall!</p><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />p");
myWindow.scrollTo(0,400);
}
</script>
</body>
</html>