Gmailのクライアントソースコードを確認するとき。 VIEW_DATA
変数には、ユーザーのデータに関連する多くのものがあります。 Javascript経由でこのデータにアクセスすることは可能ですか?Javascript経由でGmailソースコードからVIEW_DATA変数にアクセスする方法
1
A
答えて
1
VIEW_DATA
はおそらくメモリを節約するためにundefined
にリセットされています。 Gmailは閉鎖時にすべてのものをきれいに隠してしまい、グローバルな状況から難しいものになっているようです。
一つpossible- が、壊れやすいアプローチ - あなた自身のコンテキストでeval()
それをあなたをさせる、あなたの元のスクリプトを与えることになる、VIEW_DATA
が定義されている<script>
要素のDOMを照会することです。たとえば、
// get all of the <script> elements on the page
var scripts = document.getElementsByTagName('script'),
thisScript, varViewDataPos, viewDataScript, viewData
;
// loop through each one looking for VIEW_DATA being defined
for(var i = 0; i < scripts.length; i++) {
thisScript = scripts[ i ].textContent;
varViewDataPos = thisScript.indexOf('var VIEW_DATA=');
if(varViewDataPos >= 0) {
// might as well toss everything before VIEW_DATA is defined
viewDataScript = thisScript.slice(varViewDataPos);
break;
}
}
// eval what we found (if anything), but in a closure to avoid polluting
// the global namespace
viewData = (function(script) {
eval(script);
return VIEW_DATA;
})(viewDataScript);
console.log(viewData || 'Oops, script not found.');
私が言ったように、スクリーンスクレイピングのように、これは非常に脆弱です。 Googleがあなたの周りの何かを動かすと、あなたは望んでいないことを突然見ているかもしれません。例えば、関数呼び出しがページを壊すことになります。自己責任で使用してください。
DOMで探しているデータを見つけようとするなど、最終的には他の方法が賢明かもしれません。
Splendid!どうもありがとう。 –