2010-04-26 45 views
5

這是想什麼我實現:如何使用Ruby on Rails或其他方法在我自己的域上呈現網站?

  1. 用戶輸入URL(http://google.com例如)
  2. 獲得頁面,並使其對自己的域名
  3. 遍歷DOM(使用JS)和所有的爵士樂

問題是我不想使用iFrame,因爲然後我無法遍歷加載的頁面的DOM。

我能想到的唯一解決方案是解析相對URL的頁面,並將它們設置爲絕對。可能無法到處工作。另一種方法是運行wget並將所有內容(甚至圖像)保存在臨時文件夾中。縮放這將是不可能的。

還有其他想法嗎?

+3

你想完成什麼?劫持別人的網站來展示自己的廣告或什麼?你意識到你的問題聽起來很陰暗,對吧? – jdl 2010-04-26 20:15:04

+1

我實際上是爲網站所有者創建一個工具,爲他們的網站添加一個插件,而不需要真正進入代碼。我想要做的是知道他們希望插件能夠附加到哪個DOM元素,而不需要將其放入代碼中。他們所需要的只是一段JavaScript代碼,一個API代碼,我們會將頁面與他/她希望插件操作的dom元素的數據庫進行匹配。這根本不是黑幕! geeze。 – kineticac 2010-06-28 23:54:48

回答

3

聽起來像一個簡單的反向代理。您的rails後端可以使用open-uri在操作中加載站點,並呈現相同的HTML。

class ProxyController < ActionController::Base 

    def get 
    require 'open-uri' 
    file = open params[:url] 
    render :inline => file.read 
    end 

end 

訪問這個使用類似:(不要忘記URL編碼必要)

http://mysite.com/proxy/get?url=http://www.proxiedsite.com 

你可能會渲染HTML之前做了一些分析,添加任何你想要的頁面,包括javascript。

我假設你會參考你使用代理的任何內容的使用條款。

相關問題