2010-12-19 4 views
5

を使用してページ全体を現在のページの状態を「保存」任意のページをURIスキームに変換できるようになりました。このようなリンクに移動すると、ページ全体がそのままWebページを保存するようになります。たとえば、ページを編集していて、後ですべてのテキストエリアを元の状態に戻してフォームを記入したい場合や、サイトを保存することを心配することなくsomeones(小)ページを保存したい場合ダウンして自分のコンピュータ上のファイルを保存することなく、(私はブックマークレットを使用したい)基本的に私はなりたい</p> <p>(あなたが望むそれを呼び出す)関数は/再レンダリング/再描画するためのURIアンカーを作成していている私は何をしようとしているjavascriptの

ここでは、私がこれまで持っているものです。

html = '<html>' + document.documentElement.innerHTML + '</html>'; 
//html = html.replace(/"/g, '\\"'); 
a = document.createElement('a'); 
a.href = 'data:text/html;charset=utf-8,' + html; 
a.innerHTML = 'click here'; 
document.body.appendChild(a); 

あなたは私がやろうとしているものを参照してください。 さて、難しい部分は、二重引用符ですでに囲まれている二重引用符をすべて置き換えるために正規表現を使用していますが、二重引用符ではないものは置き換えられません。例えば

は、我々は十分な時間をページ

<html><body>Testing</body></html> 

を作成し、機能を実行する場合、私たちつもりだ第三とし、リンク上のいくつかの問題を取得します。

は、私が何を意味するかを参照してください:私は

var html = '<html>' + $("html").html() + '</html>'; 
$('<a></a>').html("click here") 
.attr("href", 'data:text/html;charset=utf-8,' + escape(html)) 
.appendTo($("body")); 

にそれを作り直しました

html = escape(html); 
+0

私はあなたのquestioを変更:とにかくジョンはここに最初のリンクではないように私たちは物事を行うことができますこの楽しいツールで

javascript:a=document.createElement("a");a.href="data:text/html;charset=utf-8,<html>"+escape(document.documentElement.innerHTML)+"</html>";a.innerHTML="click here";document.body.appendChild(a); 

:この場所でそれで助けてくれる人が増えたら/それを理解してください。 –

+0

もっときれいな、ありがとう – qwertymk

+0

私はこれが何が来るのを待つことができません。私は本当に目標が何であるか完全に理解していませんが、結果はクールだと私に伝えます。 – Hemlock

答えて

0

は、これが動作します。とにかく人がブックマークレットをHERESにリンクさせるためにこれを使用する場合:

....

さて、私はあなただけで新しいブックマークを作成したい場合は、SOにブックマークレットのリンクを作成する方法を見つけ出すことはできません

http://wundes.com/bookmarklets.html

3

内蔵エスケープ()関数を使用しますソースを見るとすべてが正しいように見えます。他の特別なパラメータが必要なのでしょうか?私はそれだけでjsBin/jsFiddleの専門的だと推測しているが、私は、なぜ見当もつかない

a = document.createElement('a'); 
a.href = 'data:text/html;charset=utf-8,<html>' + 
    escape(document.documentElement.innerHTML) + '</html>'; 
a.innerHTML = 'click here'; 
document.body.appendChild(a); 

:私自身のページでテストするとき

+0

まだ動作しません:http://jsbin.com/uqeni4/edit – qwertymk

0

正しく表示されない:http://jsfiddle.net/AvSh3/3/

+0

実際に私は非jQueryの答えを探しています。私は何らかの理由でwindow.onloadが動作していなかったので、jsfiddleでそれを使用していました。私は二重引用符が他の二重引用符にあるときにエスケープする必要があると推測しています。これを行うより良い方法がない限り、 – qwertymk

+0

jsBinの例:http://jsbin.com/uqeni4/edit – qwertymk

+1

@qwe - どちらも単純な例で動作するようです。より複雑なページ(jQuery、Playフレームワークの一部)で試したところ、javascriptのエラーが表示され、ソースコードが正常に見えても問題は表示されました。取引の内容が分からない –

関連する問題

 関連する問題