检索Django CBV中iframe内部的父页面赋予iframe的src属性

时间:2019-05-14 18:50:48

标签: django iframe python-requests src django-class-based-views

我正在与开发了包含应用程序链接的门户页面的人合作。当单击链接时,我的应用程序将加载到iFrame中,并在网址中附加一个?tonkenid;我不控制门户页面。我想获取iFrame的src属性并解析tokenid,以便在从iframe中加载的应用程序中使用它来进行API调用时使用。

请澄清一下,这是我在门户网站中经过身份验证后所拥有的:

门户(一旦通过身份验证)


  • Linktoapp1
  • Linktoapp2

i-frame

此处已加载我的应用程序。当我在浏览器中检查相关部分时,会得到以下提示:

<body>
    <div id="content">
        <iframe id="module" src="https://www.myappurl.com/?tokenid=.eJwty8GKgzAQANB_mbMUjWmS8bT_URaZmFEGYlwcw1ZK_72y7PEd3gskcTnkOGF4wb5lVhgeEKvkJGUZVyq08A7fDRznD8MAVS82UCVdyFV0laVyvsVMhXVnPbbzq1RZKP_SeROGdwNKax4LrTz-Nd8itXNMFl2P5Hg2NnjDPPk4JWPu3qPHmRP8T2VV2cqVn9ce78725HzfTTx7tC3G1KLpU0wdOofOMrvQhRAsvD8ho0j5.XNrWyw.8IMfiT9YcfZKGbqedHOHYyDnjVg">
    </div>
</body>

因此,我需要从应用程序内部检索由门户生成和附加的此令牌标识。我尝试了许多食谱,这似乎是不可能的。我尝试过:

 <script>
function myFunction() {    
  var res = window.parent.document.getElementById('module')src;
  document.getElementById("demo").innerHTML = res;
}
</script>

但这给了我

  

SecurityError:拒绝访问以下属性“文档”的权限   跨域对象

我还尝试了python请求和urrlib,但均未成功。是否有其他方法可用于基于Django的应用程序来清除?tokenid

我还尝试在listing 2-9中使用Django方法,如下所示:

class PortalTokenid(generic.TemplateView):
    template_name = "rom/tokenid.html"
    def get_context_data(self, *args, **kwargs):
        context = super().get_context_data(**kwargs)
        context['portaltokenid'] = self.request.GET.get('portaltokenid', '')
        return context

,并在tokenid.html模板中:

<ul>
{% for key, value in context.items %}
    <li>{{key}} : {{value}}</li>
{% endfor %}
</ul>

<p style="color: green">{{ context.portaltokenid }}</p>
<p style="color: green">{{ context }}</p>

但是我看不到模板中呈现的任何内容。

0 个答案:

没有答案