Получить атрибут src, данный iframe родительской страницей внутри iframe в django CBV - PullRequest
0 голосов
/ 14 мая 2019

Я сотрудничаю с кем-то, кто разработал страницу портала, которая содержит ссылки на приложения. При нажатии на ссылку мое приложение загружается в iFrame и в URL добавляется? Tonkenid; Я не контролирую страницу портала. Я хотел бы получить атрибут src iFrame и проанализировать токен, так как он мне нужен, чтобы использовать его из моего приложения, загруженного в iframe, для выполнения вызовов API.

Просто чтобы прояснить, вот что у меня есть, после аутентификации на портале:

Портал (после проверки подлинности)


  • Linktoapp1
  • Linktoapp2

я-кадр

Здесь загружено мое приложение. Когда я проверяю соответствующую часть в браузере, я получаю это:

<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: В доступе отказано в доступе к свойству "document" объект перекрестного происхождения

Я также попытался с запросами Python и urrlib безуспешно. Есть ли другой рецепт для приложения на основе Django, чтобы удалить это ?tokenid

Я также пытался использовать методы Django здесь, в , перечисляя 2-9 следующим образом:

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>

Но я не вижу ничего визуализированного в шаблоне.

...