gpt4 book ai didi

javascript - 在 MVC5 中如何打开一个新窗口并传递参数?

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

我想在新窗口中打开音频控件并将文件名从 MVC5 View 传递给音频控件。

我可以在 MVC5 View 中使用以下代码打开一个简单的 html 页面:

<a href="Music/Music.html"
onclick="window.open('Music/Music.html',
'newwindow',
'width=600,height=200');
return false;">html Link</a>

然后 Music.html 页面使用以下代码加载并播放文件:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<audio controls>
<source src="001.mp3" type="audio/mp3"> audio playback requires IE9 or above
</audio>
</body>
</html>

这一切都很好,但我真的想将文件名传递给新页面,以便 src 加载我传递的任何文件名。我不知道如何做到这一点,或者是否有更好更有效的方法使用 MVC5 的其他功能来做到这一点。

根据 Joe Warner 建议的答案在原始帖子后添加:

此代码放置在 Home Controller 的 index.vbhtml 中:

@Code
Dim myUrl As String = "Music/Music.html?003.mp3"
End Code

<a href="@myUrl"
onclick="window.open('@myUrl','_blank','width=600,height=100');
return false;">
html link a
</a>

<a href="@myUrl" onclick="myOpenWindow">
html link b
</a>

@Section Scripts
<script type="text/javascript">
function myOpenWindow() {
window.open('@myUrl', '_blank', 'width=600,height=100').focus();
}
</script>
End Section

这是目标 Music.html 页面

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>

<body>
<audio controls>
<source src="" id="audio" type="audio/mp3"> audio playback requires IE9 or above
</audio>

<script>
document.addEventListener("DOMContentLoaded", function() {
document.getElementById('audio').src = window.location.search.substr(1)
});
</script>
</body>

</html>

对于 html link ahtml link b,目标 Music.html 页面加载并播放 003.mp3。但是 html link a 打开一个新窗口,html link b 替换现有窗口。

我确定我犯了一个基本错误,但为什么我不能将内联 window.open javascript 移动到一个函数中,以便它可以被页面上可能存在的其他元素调用?

最佳答案

<a href="Music/Music.html" onclick="openWindow">html Link</a>

将一个函数附加到单击然后使用“_blank”打开窗口,这将在新窗口或选项卡中打开文档。

function openWindow() {
window.open("/Music/Music.html?filenameyouwant", "_blank",
"width=600, height=200"
).focus();
}

在源 HTML 中添加一个 id

<source src="001.mp3" id="audio" type="audio/mp3">

然后使用 javascript 选择它,并将它的 src 设置为您访问的 url 的末尾,您需要包装 url 参数的获取,直到 dom 加载完毕,否则将没有源元素

?filenameyouwant

document.addEventListener("DOMContentLoaded", (event) => {
document.getElementById('audio').src = window.location.search.substr(1)
});

关于javascript - 在 MVC5 中如何打开一个新窗口并传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49395499/

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