2012-05-14 26 views
0

我很容易地附加了iframe,如下所示。以不同的方式附加iframe?

$("p").append("<iframe src='http://www.site.com'></iframe>"); 

但是,搜索机器人也看到这个网址,并转到网址。我想要做的是使不同的追加。如果它是在PHP中,我可以这样做与

$part1 = "<iframe src='http://www.site"; 
$part2 = ".com'></iframe>"; 

echo $part1$part2; 

但我怎么能实现相同的使用jQuery的?

+0

我不认为PHP的方式有什么不同。最终,浏览器看到的是生成的HTML,并且不会有任何痕迹能够用两个字符串构建代码。而且机器人通常不会执行Javascript,或者现在呢? –

+0

我认为OP意味着一个机器人将会在源代码中看到该域名,并将其视为链接。 – seanxe

+0

@seanxe:啊,好吧......那么有道理。用户:你为什么不简单地说两个字符串,然后连接它们? –

回答

1

请尝试以下:

var part1 = "<iframe src='http://www.site"; 
var part2 = ".com'></iframe>"; 
$("p").append(part1+part2); 
1
$("p").append("<iframe src='http://www.s"+"ite.com'></iframe>"); 
1

使用数组建立域部分:

var domain = []; 
domain.push('http://', 'www', 'site', '.com'); 
$('p').append('<iframe src="', domain.join(''), '"></iframe>'); 
0
$("p").append($('<iframe />', { 'src' : 'http://www.site.com' })); 
+1

我认为问题的关键在于将网址拆分为不可识别的URL。 –

4

它不应该有任何区别,你如何genereate的iframe,因为@ felix-kling表示它最终将HTML内容显示为HTML,如果脚本执行脚本,就好像它已经为你做了,如果你已经是你了唱jQuery来生成iframe。接下来要做的就是尝试阻止正在运行的脚本。

这可以通过多种方式来完成,

把你的脚本在外部js文件中阻止robots.txt文件的目录,甚至更好的使用.htaccess文件来访问块外部网站js文件在该目录中。

RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteRule .*\.(js)$ - [F] 
+1

我认为@seanxe有一点。有些漫游器会简单地解析网页的来源(不管它们出现在哪里)。 –

+1

@ felix-kling这就是为什么我建议.htaccess解决方案,这将是服务器停止请求直接到js文件没有正确的引用网站,拥有它。所以机器人应该无法读取文件,除非它也提交了正确的引用。 – Arthus

+0

这不符合'http://linkgrabber.com?siteToPester = www.mysite.com/js.js' – mowwwalker