我尝试编写一个简单的基于Web的wiki游戏版本,该游戏以url开头并且有一个目标网址,用户必须通过点击维基百科页面中的链接才能访问该网址。一般的想法是在iframe中使用起始维基百科网址,在iframe中用户可以点击链接转到其他网页。


问题在于它似乎比如跟踪iframe中的用户活动有限制,除非iframe的内容来自与Web应用程序本身相同的域。因此,如果用户点击iframe中指向另一个页面的链接,我找不到跟踪用户去过的新页面的方法。即使我只是得到他们点击的链接的名称就足够了。例如,如果用户点击名为Europe的iframe中的链接,我可以使用PHP转到新页面并动态加载新的维基百科iframe。它看起来如下所示:
&#xA;&#xA; &lt;?php&#xA; $ article = $ _GET [“article”];&#xA;?&gt;&#xA;&lt; iframe id =“frame”src =“https://en.wikipedia.org/wiki/<?php echo $ article?&gt;“&#xA;
&#xA;&#xA; 似乎没有明显的方法来跟踪iframe中的用户活动。有什么建议?下面是一个游戏版本的链接,它与我的目标具有相同的总体思路。它似乎也使用iframe存储维基百科页面。
&#xA;&#xA; &#xA;答案 0 :(得分:0)
出于安全原因,如果您无法向iframe网址添加代码,则无法衡量与该网页的互动。
但是,您可以创建一个注入一些代码的代理:
window.postMessage(window.location,'*');
您需要重写页面上的链接以引用代理而不是原始目标。
然后在您的主页上:
window.addEventListener("message", onMessage, false);
function onMessage(event) {
console.log(event.data);
}
值得注意的是,这会有效地让任意代码在属于您的URL上运行。这可能会带来安全风险。