2012-03-08 32 views
7

HTML ve JavaScript ile yazılmış bir FTP istemcisi hayal edin. Bu bölüm çalışıyor. Ancak, kullanıcı listeyi "panoya kopyalayabilir". Bu panoya şeyler JS çok kolay değildir (yanı sıra, listeleri büyük olabilir). Bu yüzden, oluşturulan liste ile bir pencere açmak daha iyidir, daha sonra kullanıcı Copy'Paste veya Sayfayı diske kaydetmeyi seçebilir.Chrome: JavaScript window.open Kaydedilebilir

Şu anda yapın: çalışır

 
    my_window = window.open("", "Copy List"); 
    my_window.document.write('<pre>\n'+string+'</pre>'); 
    my_window.document.close(); 

. Yeni bir sekme alıyorum ve "string" de oluşturduğum giriş güzel bir şekilde görünüyor.

Ancak Chrome, "Sayfayı Kaydet" seçeneğini devre dışı bırakır/grileştirir. Kullanıcı sayfayı (html veya txt) kaydedebilirse iyi olur. Bir pencereyi/sekmeyi açmak ve içeriği kaydetmelerine izin vermek için hangi sihir gereklidir?

WebSockets (key1/key2) kullandığımız için bu yalnızca Chrome'da çalışır, başka bir tarayıcı gerekmez.

+0

Hemen hemen her tarayıcı destekleyen web yuvaları; Çapraz tarayıcı desteğini bırakmak için daha iyi bir bahaneye ihtiyacınız olacak. http://caniuse.com/#feat=websockets – Domenic

+0

Protokolün sürümü hakkında daha fazla. Konuşmak için JS kodu için FXP.One motorunda WebSocket bağlantı noktasını uyguladıktan sonra, yalnızca Sec-WebSocket-Key ve Sec-WebSocket-Accept kullanan yeni protokolü uyguladık. Şu anda (en azından Dec'te kodu başlattığımızda), bu sadece Chrome anlamına geliyordu. Diğer tüm tarayıcılarda key1/key2 kullanıldı veya devre dışı bırakıldı. Eski protokolü de uygulayabilirdim, ancak aşamalı olarak, beklemenin daha kolay olduğunu hissettim. – lundman

+0

Yine eski bir protokol olan Firefox'u test ettim. Ama Firefox-Beta5 onları güncelledi ve gerçekten FXP.One ile güzel çalışıyor. Yani, eğer beta sürümünü çalıştırırsanız, iki tarayıcı için bir çözüm güzel olurdu. – lundman

cevap

3

Yolu işten geçtikten sonra ancak bunun için bir veri URI kullanabilirsiniz:

window.open("data:text/plain;base64,"+btoa(theCode))

İlgili konular