2012-05-23 85 views
0

我想借此從文檔中給定文本,並將其複製到一個彈出窗口(window.open)複製文本包含由生成的表格服務器端後端(在這種情況下是rails)這個表單是從不同的域加載的,包含要複製的文本。該文本將以表單顯示(由用戶查看),然後通過POST表單操作提交給服務器。從當前文檔到新的window.open(「otherdomainURL」)

我最初想使用document.write()的,但這是不可能的,因爲在彈出的頁面會從不同的域加載。

由於對字符的限制,在這種情況下查詢字符串將無濟於事。任何其他選項?

回答

0

你最好的選擇可能會是在彈出的窗口中呼籲從另一個屏幕上的文字腳本。而不是嘗試將它傳遞給彈出窗口。

使用Ajax調用的主網頁,並得到該文本字段,當你得到它更新文本字段。

+0

地獄不! ajax調用父項?!爲什麼? – gdoron

1

大部分現代瀏覽器都支持window.postMessage在那裏你可以將信息傳遞給新的窗口。

如果您正在使用舊版瀏覽器的工作,最好的辦法是到一個表單POST到該域的與內容頁面,並且該服務器將讀取發佈的數據,並填寫表格。

+0

謝謝。不幸的是,IE 8/9缺乏支持,所以我將不得不在域中做兩個帖子。你會推薦普通的js或JQuery嗎? – Jason

-1

如果您可以編輯在新窗口中加載的頁面,那麼您可以使用JavaScript進行操作。在打開新窗口之前,將複製的文本設置爲父窗口中的變量。

var copiedText = 'text to be copied'; //e.g. $('#some-textarea').val() 

然後加載新頁面。在新頁面中,使用

opener.copiedText 

添加對'開啓者'窗口變量的調用並使用它來填充表單元素。

+0

彈出窗口位於不同的域中,不能讀取開啓者! – epascarello

+0

這就是爲什麼我提到'如果你可以編輯頁面'。 – walmik

+0

無論他是否可以編輯這兩個頁面都無所謂,由於具有相同的源策略,您無法從域A讀取到域B. – epascarello