Javascript 如何用src=“name2”替换src=“name1”?
大家好 我有一个想法,但我不知道如何实施 如何确保在按下ctrl+shift+i的同时按f12键更改了html代码的某些部分 例如:SRC=error.MP4上的SRC=video.MP4 谢谢 更新-9.24.18 您需要这样做,以便用户很难从scr=video.mp4复制链接Javascript 如何用src=“name2”替换src=“name1”?,javascript,html,Javascript,Html,大家好 我有一个想法,但我不知道如何实施 如何确保在按下ctrl+shift+i的同时按f12键更改了html代码的某些部分 例如:SRC=error.MP4上的SRC=video.MP4 谢谢 更新-9.24.18 您需要这样做,以便用户很难从scr=video.mp4复制链接 -爱森有一种方法可以做到这一点: <video id="someVideo" src="somfile.mp4" /> <script> functio
-爱森有一种方法可以做到这一点:
<video id="someVideo" src="somfile.mp4" />
<script>
function KeyPress(e)
{
var evtobj = window.event ? event : e;
// 73 = i
if (evtobj.keyCode == 73 && evtobj.ctrlKey && evtobj.shiftKey)
{
document.getElementById('someVideo').src = "error.mp4";
}
}
// On keypress, activate our function
document.onkeydown = KeyPress;
</script>
但是,正如我在评论中提到的,这不会阻止用户下载您的mp4文件
用户仍然可以:
单击鼠标右键,检查图元
击中f12
在访问您的网站之前打开“检查元素”
保存您的网页
只保存网页中的视频
禁用JS/覆盖您的JS
无需使用网络浏览器即可访问您的网页获取/保存您的网页
还有其他的方法,这是我不知道的
编辑以下评论:
你可以改为使用html5
这将隐藏源代码。但是,如果用户禁用了JS,则会导致视频不再工作
示例:您必须添加自己的播放按钮,或更改脚本以自动启动视频:
<!-- You can hide this element anywhere in your hmtl. It will not be visbile (via CSS) -->
<!-- note: I used `muted="muted"` because otherwise you will get an error when starting the video without a user action -->
<video id="someVideo" muted="muted" controls>
<source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4">
</video>
<!-- canvas will display the video -->
<canvas id="myCanvas"></canvas>
<script>
document.addEventListener('DOMContentLoaded', function()
{
var hiddenVideo = document.getElementById('someVideo');
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var cw = Math.floor(canvas.clientWidth);
var ch = Math.floor(canvas.clientHeight);
canvas.width = cw;
canvas.height = ch;
hiddenVideo.addEventListener('play', function(){
draw(this,context,cw,ch);
},false);
hiddenVideo.onloadstart = function(){
this.play();
};
},false);
function draw(v,c,w,h)
{
if(v.paused || v.ended)
return false;
c.drawImage(v,0,0,w,h);
setTimeout(draw,20,v,c,w,h);
}
</script>
<style>
#someVideo
{
display: none;
width: 200px;
height: 200px;
}
#myCanvas
{
width: 200px;
height: 200px;
}
</style>
由于您将mp4文件提供给用户,因此无法阻止用户使用mp4文件。document.getElementById'srcId'.src=video.mp4,因为srcId是元素的id,如果这是某种反黑客措施,它将不起作用。用户可以右键单击并点击Inspect或打开开发工具,然后转到该页面。您不能阻止用户下载mp4文件。即使浏览器“inspect元素”不存在。@艾森您的上一条评论毫无意义。这不会绕过任何东西或禁用JS。它也不是什么保护措施。这不会使它失效。他们只需查看源代码即可访问:http://example.com/ 在Chrome浏览器的地址栏中,或者他们可以打开开发者工具并刷新以获得新的页面加载。任何能够/将要使用开发者工具的人都可以绕过您的保护,不会出现任何问题。我需要,当您单击f12,ctrl+shift+I时,鼠标右键被替换为链接src=video中的video必须保持可用我很抱歉,没有立即正确表达想法您需要这样做,以便用户很难从scr复制链接=这是point@Aison所以你不想在用户点击f12时显示源,但你仍然希望视频正常工作?是的。通过处理Ctrl+s、Ctrl+shift+i、f12按钮事件使获取链接复杂化。按下on按钮后,脚本将用任意字符替换src=中的视频链接other@Aison添加了一个使用元素的示例