簡體   English   中英

這些Google日歷活動來自什么?

[英]What are these Google-calendar events from?

似乎很常見的做法是獲取Google日歷嵌入代碼的內容,然后向其中添加樣式表( 手動或通過類似PHP 腳本的方式 )並顯示自定義樣式的公共日歷。

奇怪的是,我注意到,如果您單擊頂部的打印按鈕,或單擊右下角的“ Google日歷”,它將轉到localhost或頁面所在的任何域-而不是Google日歷。

如果您嘗試通過Chrome devtools或通過帶有gcal$func$[3].toSource(); Firefox來跟蹤“ gcal$func$[3](); ” onclick gcal$func$[3].toSource(); 它不會找到它或說

"function () {
    [native code]
}"

那么,此函數來自何處,又如何調整它以使其在帶有Google url而不是當前域(404)的新窗口中打開?

根據Google Calendar嵌入的JS代碼,該函數指向以下代碼

window.open(Pf(this.ciNb + "/render", "cid", b))

this.ciNb表示基本URL,默認情況下是運行腳本的域(在您的情況下,這就是您的域)。 但是,它原本是google.com域名,但很容易更改。 baseURL是初始化腳本(在要抓取的頁面中聲明)中的參數之一,您只需將其配置為https://www.google.com

如果使用PHP,則代碼可能如下所示。

$page = new DOMDocument("1.0", "utf-8");
// grab the Google Calendar code
$page->loadHTMLfile("https://www.google.com/calendar/embed?src=yourcalendar%40gmail.com");
// set up the baseUrl and print the grabbed page
echo str_replace('"baseUrl":"/"', '"baseUrl":"https://www.google.com/"', $page->saveHTML());

現在,所有鏈接都應正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM