受信したeventbriteメールのコンテンツにアクセスしようとしていますが、HTMLコードにはJSON-LDスクリプトに関連付けられたIDがありません。それでは、このデータにまだアクセスする方法はありますか?もしそうなら、どうですか?JSON-LDにIDを持たないJavaScriptにアクセスする方法はありますか?
JSON-LDスクリプトタグに一時的なIDを付けてデータにアクセスすることは可能でしょうか?もしそうなら、どうですか?
受信したeventbriteメールのコンテンツにアクセスしようとしていますが、HTMLコードにはJSON-LDスクリプトに関連付けられたIDがありません。それでは、このデータにまだアクセスする方法はありますか?もしそうなら、どうですか?JSON-LDにIDを持たないJavaScriptにアクセスする方法はありますか?
JSON-LDスクリプトタグに一時的なIDを付けてデータにアクセスすることは可能でしょうか?もしそうなら、どうですか?
あなたはここに完全な例だ
document.querySelector('script[type="application/ld+json"]');
でちょうど
document.querySelectorAll('script[type="application/ld+json"]');
または最初のもので、すべてのJSON-LDブロックを取得することができます。
var jsonld = JSON.parse(document.querySelector('script[type="application/ld+json"]').innerText);
document.getElementById('result').innerText = jsonld.endDate;
<html>
<head>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Event",
"name": "A random event",
"startDate": "2013-09-14T21:30",
"endDate": "2013-09-14T21:30"
}
</script>
</head>
<body>
<p>The end date is: <strong id="result"></strong></p>
</body>
</html>
Markus、提案に感謝します!しかし、var emailDate = document.querySelectorAll( 'script [type = "application/ld + json"]')を使用すると構文エラーが発生します。 –
また、json ld全体を選択したら、email.Dateだけを使用します。 endDateを使用してjson ldのデータにアクセスしますか? (私がアクセスしたいパラメータです) –
完全な実行可能な例を含めるように答えを更新しました –
function myFunction() {
var todayDate = new Date();
var label = GmailApp.getUserLabelByName("eventbrite");
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
threads[i].getMessages()[i].getBody().forEach(
var jsonld = JSON.parse(document.querySelector('script[type="application/ld+json"]').innerText);
document.getElementById('result').innerText = jsonld.endDate;
if (jsonld.endDate > todayDate){
threads[i].markUnread();
}
)
}
}
ようこそスタックオーバーフロー。 Minimal、Complete、Verifiableの質問の作成方法の詳細については、[こちらを読む](http://stackoverflow.com/help/mcve)を参照してください。 – Toby
なぜアクセスするにはIDが必要ですか? – unor
Unor、私がインターネットを検索したとき、すべての例でIDを使用していたので、IDを使用せずにアクセスする方法がわからなかった。 –