2012-05-14 53 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