0

在我的项目中,

我创建了一个可以复制然后放入任何网站的代码片段。它在其他网站上显示我的内容。

我现在使用的是:

<script type='text/javascript'>
var user = 'abc';
var age = '23';

document.write('<iframe src="http://www.mysite.com/page.php?user='+ user + '&age=' + age + '" ></iframe');
</script>

在 page.php 中,

我根据并显示动态内容进行了一些user处理age

我的方法效果很好。

但是当我研究一些很好的标准方法来完成这些任务时,我发现了一种不同的方法。

以 google adsense 代码为例。

<script type='text/javascript'>
 var a = 'somedata';
 var b = 'someotherdata';
</script>

<script type='text/javascript' src='http://www.google.com/adsenseurl.js'></script>

我猜,因为ab是全球性的;adsenseurl.js 必须使用它,并且可能最终他们在 iframe 上显示它。

所以,现在的问题。

使用谷歌的方法有什么好处,我的方法有什么问题?

ps 我知道我应该尽量避免使用 iframe,但我没有看到任何其他方法来实现这一点。

4

2 回答 2

2

在我看来,您的方法和 adSense 之间的主要区别在于,您的代码必须放置在广告必须出现的位置并加载像 adsense 这样的脚本,他们可以在检查页面后将 iframe 放置在 DOM 中 - 使用

var myIframe = document.createElement('iframe');
.
.
someDOMObject.appendChild(myIframe);

和/或操纵 zindex 以将 iframe 浮动到页面上方

最后,iFrame 很有用(不管你可能听到“哦,不——iframe 是邪恶的”),因为你可以使用任何你喜欢的 css 和 jquery。如果您所在的页面已经有样式的 div 和旧版本的 jQuery,您将需要做更多的工作才能使其看起来像您想要的那样。

于 2012-04-06T05:25:33.093 回答
0

为什么要使用 iframe?如果您的用户加载<script src='yoursite.com/something.js'></script>了 DOM,您可以立即访问他的 DOM,并且可以通过它做任何您想做的事情something.js。与从某个 CDN 加载 jQuery 的方式相同 - 它可以立即用于修改 DOM。

否则真的没有区别,除了:

  1. 他没有嵌入用户必须维护的大量代码,而是提供必要的变量并简单地链接到页面上的脚本。
  2. 您可以更新服务器上的 js 代码,并确保您的所有用户都立即(减去缓存)与新功能保持同步。

可能还有其他优势,但我相信这两个就足够了。

于 2012-04-05T17:03:30.613 回答