Javascript 如何使用onclick=newwindow动态调整mjpg图像流的大小?
我有一个网页流多个IP摄像头,每个摄像头图像都可以点击,以显示一个新的,可调整大小的窗口。但是,新窗口中mjpg流的图像大小是静态的。我想用浏览器窗口调整图像的大小。如果这是不可能的,那么我可以为每个相机创建一个网页,并使其动态调整图像大小,但我不必为我拥有的每个相机创建一个网页 我试着寻找方法来实现这一点,但就是找不到我需要的。我的代码知识非常有限,所以我不知道要搜索什么Javascript 如何使用onclick=newwindow动态调整mjpg图像流的大小?,javascript,Javascript,我有一个网页流多个IP摄像头,每个摄像头图像都可以点击,以显示一个新的,可调整大小的窗口。但是,新窗口中mjpg流的图像大小是静态的。我想用浏览器窗口调整图像的大小。如果这是不可能的,那么我可以为每个相机创建一个网页,并使其动态调整图像大小,但我不必为我拥有的每个相机创建一个网页 我试着寻找方法来实现这一点,但就是找不到我需要的。我的代码知识非常有限,所以我不知道要搜索什么 <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <M
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<html>
<head>
<title></title>
<link rel="stylesheet" href="zm_html_styles.css" type="text/css">
<script language="javascript">
var win = null;
function NewWindow(mypage,myname,w,h,scroll)
{
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable'
win = window.open(mypage,myname,settings)
}
</script>
</head>
<body bgcolor="black">
<div id'"row1" style="overflow: no; max-height: 256px;">
<table align="center" border="0">
<tr>
<td><a href="http://10.0.0.87/mjpg/video.mjpg" onclick="NewWindow(this.href,'name','1920','1440','yes');return false">
<img src="http://10.0.0.87/axis-cgi/mjpg/video.cgi?resolution=320x240&fps=5" width="365" height="274"></a>
<td><a href="http://10.0.0.141/mjpg/video.mjpg" onclick="NewWindow(this.href,'name','1920','1440','yes');return false">
<img src="http://10.0.0.141/axis-cgi/mjpg/video.cgi?resolution=320x240&fps=5" width="365" height="274"></a>
<td><a href="http://10.0.0.78/mjpg/video.mjpg" onclick="NewWindow(this.href,'name','1920','1440','yes');return false">
<img src="http://10.0.0.78/axis-cgi/mjpg/video.cgi?resolution=320x240&fps=5" width="365" height="274"></a>
<td><a href="http://10.0.0.139/mjpg/video.mjpg" onclick="NewWindow(this.href,'name','1920','1440','yes');return false">
<img src="http://10.0.0.139/axis-cgi/mjpg/video.cgi?resolution=320x240&fps=5" width="365" height="274"></a>
<td><a href="http://10.0.0.64/mjpg/video.mjpg" onclick="NewWindow(this.href,'name','1920','1440','yes');return false">
<img src="http://10.0.0.64/axis-cgi/mjpg/video.cgi?resolution=320x240&fps=5" width="365" height="274"></a>
<td><a href="http://10.0.0.83/mjpg/video.mjpg" onclick="NewWindow(this.href,'name','1920','1440','yes');return false">
<img src="http://10.0.0.83/axis-cgi/mjpg/video.cgi?resolution=320x240&fps=5" width="365" height="274"></a>
<td><a href="http://10.0.0.107/mjpg/video.mjpg" onclick="NewWindow(this.href,'name','1920','1440','yes');return false">
<img src="http://10.0.0.107/axis-cgi/mjpg/video.cgi?resolution=320x240&fps=5" width="365" height="274"></a>
<td><a href="http://10.0.0.111/mjpg/video.mjpg" onclick="NewWindow(this.href,'name','1920','1440','yes');return false">
<img src="http://10.0.0.111/axis-cgi/mjpg/video.cgi?resolution=320x240&fps=5" width="365" height="274"></a>
<tr>
</table>
</div>
var-win=null;
函数新建窗口(mypage、myname、w、h、滚动)
{
LeftPosition=(屏幕宽度)?(屏幕宽度-w)/2:0;
顶部位置=(屏幕高度)?(屏幕高度-h)/2:0;
设置='高度='+h+',宽度='+w+',顶部='+TopPosition+',左侧='+LeftPosition+',滚动条='+scroll+',可调整大小'
win=窗口。打开(mypage、myname、设置)
}
当窗口调整大小时,您似乎必须发送一个新请求。代码如下所示:
window.addEventListener('resize', ()=>{
let height = window.innerHeight;
let width = window.innerWidth;
document.location = `http://myserver/axis-cgi/operator/param.cgi? action=update&Image.I0.Resolution=${width}x${height}`
});
但是,由于您没有提供对代码的任何洞察,这只是一个猜测,我的工作并不成功。如果你想得到更精确的答案,你需要提供一些你尝试过的代码和HTML。欢迎使用SO!最好的方法是发布你已经尝试过的代码,但它不起作用,然后人们可以提供如何改进的建议。谢谢你的回复!我已经编辑了一些网页代码,并将其添加到我的原始帖子中。由于我的理解非常有限,我想我需要将代码或类似的东西添加到顶部的脚本部分。但我不确定如何集成此调整大小功能。提前谢谢。@MichaelGregory-在这种情况下,为了实现你的目标,你需要做一些改变。锚定标记中的每个链接都需要指向一个HTML文件,该文件独立加载视频并包含处理窗口大小调整所需的JavaScript。这是必要的,因为您使用window.open()
打开的窗口在其自身的上下文中运行,并且完全独立于opener窗口。好的,我认为可能需要这样做。谢谢你的帮助。