2017-10-28 34 views
2

需要在下面的一些帮助,因为,很遗憾,我不能由我自己看着办吧:(传递一个动态的URL字段到iframe没有服务器端编码

  1. 用户被重定向到一个表单(通过iframe服务),其中包含一个动态网址:website.com/form?id=123

  2. 提供页面的代码从页面中的“id”参数中读取该值(“123”) URL

  3. 该脚本然后将该值写入结尾“data-url”属性中的URL,如下面的示例代码片段所示。

<div class="typeform-widget" data-url="iframe.com/to/abc123?id=123" style="width: 100%; height: 500px;" ></div> 
 
<script> (function() { var qs,js,q,s,d=document, gi=d.getElementById, ce=d.createElement, gt=d.getElementsByTagName, id="typef_orm", b="https://embed.iframe.com/"; if(!gi.call(d,id)) { js=ce.call(d,"script"); js.id=id; js.src=b+"embed.js"; q=gt.call(d,"script")[0]; q.parentNode.insertBefore(js,q) } })() 
 
</script>

不幸的是,我似乎无法得到它的工作...

谢谢了!

+0

就死在从URL解析ID ... – Chriswede

+0

这是代码在框架内执行?它试图读取当前的浏览器网址或iframe网址吗? –

+0

代码在网站上(不是iframe),但是通过阅读当前浏览器url中的id标签来更改iframe网址 – Chriswede

回答

7

不知道你为什么面临这个任务的问题。下面是我如何从当前的URL

url = document.location.href; 
var paramId = new URL(url).searchParams.get("id"); 

var frameElement = document.getElementById("typef_orm_frame"); 
frameElement.src = "https://example.com/to/abc" + paramId + "?id=" +paramId; 

这里得到的ID是对的jsfiddle演示

https://jsfiddle.net/0Lswuxj8/1/

相关问题