生成一个从预览表格的URL中嵌入iframe的框架

问题描述:

因此,我创建了一个表单,人们可以在其中输入各种描述配方的数据。其中一种数据类型是YouTube视频网址。我想将用户放入URL框中的数据与视频生成一个iframe,以便预览并确保它是正确的。这是我使用的代码:生成一个从预览表格的URL中嵌入iframe的框架

function makeVideoPreview(aTable, aTextBox) 
 
{ 
 
\t var aVideo = document.createElement("iframe"); 
 
\t aVideo.setAttribute("width", "560"); 
 
\t aVideo.setAttribute("height", "315"); 
 
\t var theURL = aTextBox.value; 
 

 
\t var idIndex = theURL.indexOf("v=") + 2; 
 
\t var vidID = theURL.slice(idIndex, theURL.length );; 
 

 
\t var embedLink = "https://www.youtube.com/embed/"+ vidID; 
 
\t aVideo.setAttribute("src", embedLink); 
 
\t aVideo.setAttribute('allowfullscreen', 'true'); 
 
    aVideo.setAttribute('frameborder', "0"); 
 
\t aTable.appendChild(aVideo); 
 
}

如果我使用调试器和单步执行代码时,iframe被放置在正确的地方,开始加载,然后我得到一个405方法不允许错误,并重新加载整个页面。

如果我从调试器复制生成的iframe并将其粘贴到html源代码中,它工作正常。世界正在发生什么?

我不是一个网络人。我主要做本地iOS开发,但是我将其作为资源,以便我为该应用创建的公司可以添加配方内容。我确信这是我对平台不了解的东西。

谢谢。

+0

如何通过表单或类似的提交事件调用此函数?听起来像你没有正确地阻止默认的提交过程,所以POST请求被设置为一个“静态”URL(例如HTML文件,web服务器通常被配置为拒绝该URL)。如果这些提示没有帮助,请创建一个[mcve]。 – CBroe

+1

Youtube提供了一个播放器API,也许使用它会更合适? [Youtube API文档](https://developers.google.com/youtube/iframe_api_reference) – NewToJS

+0

提供的代码工作没有任何隔离问题.... – Alexandr

我刚找到答案!我认为。显然,每个元素“按钮”默认提交。我认为提交是一个提交,按钮是一个动作少的元素,除非有特定的onclick或类似的功能。显然,必须将按钮类型设置为按钮或默认提交。