跟踪<iframe>中的用户点击次数(Wiki游戏)

时间:2017-03-18 21:14:15

标签: javascript php jquery html iframe

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

&#xA;&#xA;

问题在于它似乎比如跟踪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;

http://cs.mcgill.ca/~rwest/wikispeedia/

&#xA;

1 个答案:

答案 0 :(得分:0)

出于安全原因,如果您无法向iframe网址添加代码,则无法衡量与该网页的互动。

但是,您可以创建一个注入一些代码的代理:

window.postMessage(window.location,'*');

您需要重写页面上的链接以引用代理而不是原始目标。

然后在您的主页上:

window.addEventListener("message", onMessage, false);

function onMessage(event) {
  console.log(event.data);
}

值得注意的是,这会有效地让任意代码在属于您的URL上运行。这可能会带来安全风险。