Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改或删除元素src中的一个字符_Javascript_Jquery - Fatal编程技术网

Javascript 更改或删除元素src中的一个字符

Javascript 更改或删除元素src中的一个字符,javascript,jquery,Javascript,Jquery,我有一个iframe,需要更改一个字符 编辑:添加大量额外的代码,因为这比我最初认为的更困难 <iframe href="https://derpxample.com/"> <video id="post_html5_api" class="vjs-tech" loop="" preload="auto" src="https://derpxample.com/v/berp.mp4"> <source src="https://derpxam

我有一个
iframe
,需要更改一个字符

编辑:添加大量额外的代码,因为这比我最初认为的更困难

<iframe href="https://derpxample.com/">
<video id="post_html5_api" class="vjs-tech" loop="" preload="auto" src="https://derpxample.com/v/berp.mp4">
            <source src="https://derpxample.com/v/berp.mp4" type="video/mp4">
</video>
</iframe>
使用类似的方法:

 var element = document.getElementById('my-video');
 element.src = element.str.replace('https', 'http');
video = $('iframe').contents().find('video');
$(video).attr('src', $(video).attr('src').replace("https", "http"));
要素:

 <video id='my-video' src = 'https://example... > 
使用类似的方法:

 var element = document.getElementById('my-video');
 element.src = element.str.replace('https', 'http');
video = $('iframe').contents().find('video');
$(video).attr('src', $(video).attr('src').replace("https", "http"));
要素:

 <video id='my-video' src = 'https://example... > 

也许这对你有用:

$('video').attr('src', $('video').attr('src').replace("https", "http"));
编辑:对于iFrame,您可以尝试以下操作:

 var element = document.getElementById('my-video');
 element.src = element.str.replace('https', 'http');
video = $('iframe').contents().find('video');
$(video).attr('src', $(video).attr('src').replace("https", "http"));

也许这对你有用:

$('video').attr('src', $('video').attr('src').replace("https", "http"));
编辑:对于iFrame,您可以尝试以下操作:

 var element = document.getElementById('my-video');
 element.src = element.str.replace('https', 'http');
video = $('iframe').contents().find('video');
$(video).attr('src', $(video).attr('src').replace("https", "http"));

像这样的怎么样

var video = document.getElementById('videoID');
video.src = video.src.replace(/^https:/, 'http:');

这并不意味着src总是以https:
开头,如果https出现在URL的其他地方,src也不会中断。

类似的情况如何

var video = document.getElementById('videoID');
video.src = video.src.replace(/^https:/, 'http:');

这并不意味着src总是以https:
开头,如果https出现在URL的其他地方,src也不会中断。

我怀疑你问题的关键在于你提到了一个

如果您试图访问或更改iframe的内容,则只有当它从与父页面相同的主机加载时,才能执行此操作


有关更多详细信息,请参阅此问题:

我想你问题的关键在于你提到了一个

如果您试图访问或更改iframe的内容,则只有当它从与父页面相同的主机加载时,才能执行此操作



有关详细信息,请参阅此问题:

视频标签是否有id?你能给它一个吗?这将使解决方案更简单。只需编辑html源代码,而不是尝试一些javascript解决方案。正如Arjan还指出的,有什么理由不能简单地编辑源代码?通过请求js/jq解决方案,我认为更改源代码显然不适用。在未来的需求中会更清晰、更快速。您是否尝试过
视频标签是否有id?你能给它一个吗?这将使解决方案更简单。只需编辑html源代码,而不是尝试一些javascript解决方案。正如Arjan还指出的,有什么理由不能简单地编辑源代码?通过请求js/jq解决方案,我认为更改源代码显然不适用。在未来的需求中会更清晰,速度会更快。您是否尝试过
这是非常优雅的代码。似乎可以正常工作,但实际上并没有将
https
更改为
http
,我建议将其简化为:
$('video').attr('src',function(I,s){return s s.replace(“https”,“http”);
(无需调用
.attr()
两次,
attr()
已返回字符串,因此无需调用
toString()
)。谢谢,David!删除了toString(),它在我的示例中仍然有效,但我无法让它在我这边的函数中工作。hmmm这是一段非常优雅的代码。似乎可以正常工作,但实际上并没有将
https
更改为
http
,我建议将其简化为:
$('video')。attr('src',function(I,s){return s.replace(“https”,“http”);
(无需调用
.attr()
两次,
attr()
已返回字符串,因此无需
toString()
)。谢谢,David!删除了toString()它在我的示例中仍然有效,但我无法让它与我端的函数一起工作。如果您绝对确定原始
src
始终以
https
开头,则通常使用此选项。只有在您绝对确定原始
src
始终以
https
开头时,才使用此选项。评论很好。我'我没有更改iframe的内容,但将用作变量,
clone
ing或
prepend
ing将其添加到父div。评论不错。我没有更改iframe的内容,但将用作变量,
clone
ing或
prepend
ing将其添加到父div。