17. webContents

原文:https://github.com/electron/electron/blob/master/docs/api/web-contents.md
譯者:Lin

渲染和控制網(wǎng)頁

進(jìn)程:主進(jìn)程

webContents是一個EventEmitter直砂。它負(fù)責(zé)渲染和控制一個網(wǎng)頁摹迷,并且是BrowserWindow對象的一個屬性异赫。一個訪問webContents對象的例子:

const {BrowserWindow} = require('electron')

let win = new BrowserWindow({width: 800, height: 1500})
win.loadURL('http://github.com')

let contents = win.webContents
console.log(contents)

<h2 id="Methods">方法</h2>

這里的方法可以通過webContents模塊來訪問:

const {webContents} = require('electron')
console.log(webContents)

<h3 id="webContents-getAllWebContents"><code>webContents.getAllWebContents()</code></h3>

返回值為WebContents[]類型 - 所有WebContents實例組成的數(shù)組适掰。這個將包含所有窗口、webview睬澡、打開的工具啄糙、和工具擴(kuò)展北京頁面的網(wǎng)絡(luò)內(nèi)容桑李。

<h3 id="webContents-getFocusedWebContents"><code>webContents.getFocusedWebContents()</code></h3>

返回值為WebContents類型 - 應(yīng)用中的獲得焦點的網(wǎng)絡(luò)內(nèi)容,如果沒有就返回null

<h3 id="webContents-fromId"><code>webContents.fromId(id)</code></h3>

  • id Integer類型

返回值為WebContents類型 - 通過給的ID獲取一個對應(yīng)的WebContents實例劣领。

<h2 id="class-webcontents">Class: WebContents</h2>

渲染和控制一個BrowserWindow實例的內(nèi)容惊暴。

進(jìn)程:主進(jìn)程

<h3 id="instance-events">實例事件</h3>

<h4 id="event-did-finish-load">事件:'did-finish-load'</h4>

當(dāng)導(dǎo)航被加載完成時被分發(fā),即標(biāo)簽上的旋轉(zhuǎn)標(biāo)志已經(jīng)停止旋轉(zhuǎn)础废,并且onload事件被分發(fā)抛腕。

<h4 id="event-did-fail-load">事件:'did-fail-load'</h4>

返回值為:

  • event Event類型
  • errorCode Integer類型
  • errorDescription String類型
  • validatedURL String類型
  • isMainFrame Boolean類型

這個事件和did-finish-load類似,但是是在當(dāng)加載失敗或者取消加載的時候被分發(fā)敢伸,例如window.stop()被調(diào)用兰怠。完整的錯誤代碼列表和它們對應(yīng)的意思在這里宠互。

<h4 id="event-did-frame-finish-load">事件:'did-frame-finish-load'</h4>

返回值為:

  • event Event類型
  • isMainFrame Boolean類型

當(dāng)一個frame完成導(dǎo)航的時候被分發(fā)汁掠。

<h4 id="event-did-start-loading">事件:'did-start-loading'</h4>

當(dāng)標(biāo)簽上的旋轉(zhuǎn)標(biāo)志開始旋轉(zhuǎn)時的時間點上略吨。

<h4 id="event-did-stop-loading">事件:'did-stop-loading'</h4>

當(dāng)標(biāo)簽上的旋轉(zhuǎn)標(biāo)志停止旋轉(zhuǎn)時的時間點上。

<h4 id="event-did-get-response-details">事件:'did-get-response-details'</h4>

返回值為:

  • event Event類型
  • status Boolean類型
  • newURL String類型
  • originalURL String類型
  • httpResponseCode Integer類型
  • requestMethod String類型
  • referrer String類型
  • headers Object類型
  • resourceType String類型

當(dāng)關(guān)于一個請求資源的詳細(xì)信息有效時被分發(fā)考阱。status標(biāo)識著socket連接到了下載的資源上翠忠。

<h4 id="event-did-get-redirect-request">事件:'did-get-redirect-request'</h4>

返回值為:

  • event Event類型
  • oldURL String類型
  • newURL String類型
  • isMainFrame Boolean類型
  • httpResponseCode Integer類型
  • requestMethod String類型
  • referrer String類型
  • headers Object類型

當(dāng)一個請求資源收到一個重定向時被分發(fā)。

<h4 id="event-dom-ready">事件:'dom-ready'</h4>

返回值為:

  • event Event類型

當(dāng)給定的frame中的文檔被加載的時候被分發(fā)乞榨。

<h4 id="event-page-favicon-updated">事件:'page-favicon-updated'</h4>

返回值為:

  • event Event類型
  • favicons String[]類型 - URL的數(shù)組

當(dāng)頁面收到網(wǎng)站圖標(biāo)地址時被分發(fā)秽之。

<h4 id="event-new-window">事件:'new-window'</h4>

返回值為:

  • event Event類型
  • url String類型
  • frameName String類型
  • disposition String類型 - 可以是defaultforeground-tab吃既、background-tab考榨、new-windowsave-to-diskother鹦倚。
  • options Object類型 - 這個選項將會被用來創(chuàng)建一個新的BrowserWindow河质。
  • additionalFeatures String[]類型 - 這個不標(biāo)準(zhǔn)的特性(這個特性不會被Electron或Chromium處理)傳給window.open()

當(dāng)頁面請求通過一個url打開一個新的窗口時被分發(fā)。它可以被window.open或一個像<a target='_blank'>似的外部鏈接所請求掀鹅。

默認(rèn)情況下會通過這個url創(chuàng)建一個新的BrowserWindow散休。

調(diào)用event.preventDefault()將會阻止Electron自動的創(chuàng)建一個新的BrowserWindow。如果你想調(diào)用event.preventDefault()并且手動創(chuàng)建一個新的BrowserWindow那么你必須設(shè)置event.newGuest引用這個新的BrowserWindow實例乐尊,如果不這樣做可能會導(dǎo)致想不到的行為戚丸。例如:

myBrowserWindow.webContents.on('new-window', (event, url) => {
    event.preventDefault()
    const win = new BrowserWindow({show: false})
    win.once('ready-to-show', () => win.show())
    win.loadURL(url)
    event.newGuest = win
})

<h4 id="event-will-navigate">事件:'will-navigate'</h4>

返回值為:

  • event Event類型
  • url String類型

當(dāng)一個用戶或者頁面想要開始導(dǎo)航時被分發(fā)。它可以發(fā)生在window.location對象被改變或者用戶點擊頁面中的了一個鏈接時扔嵌。

當(dāng)導(dǎo)航以代碼的形式調(diào)用webContents.loadURLwebContents.back之類的接口而開始時這個事件將不會被分發(fā)限府。

頁面之內(nèi)的導(dǎo)航也不會使這個事件被分發(fā),例如點擊錨點鏈接或者更新window.location.hash痢缎。對于這些行為請使用did-navigate-in-page事件胁勺。

調(diào)用event.preventDefault()將會阻止導(dǎo)航。

<h4 id="event-did-navigate">事件:'did-navigate'</h4>

返回值為:

  • event Event類型
  • url String類型

當(dāng)一個導(dǎo)航完成時被分發(fā)牺弄。

頁面之內(nèi)的導(dǎo)航也不會使這個事件被分發(fā)姻几,例如點擊錨點鏈接或者更新window.location.hash。對于這些行為請使用did-navigate-in-page事件势告。

<h4 id="event-did-navigate-in-page">事件:'did-navigate-in-page'</h4>

返回值為:

  • event Event類型
  • url String類型
  • isMainFrame Boolean類型

當(dāng)一個頁面內(nèi)的導(dǎo)航發(fā)生的時候被分發(fā)。

當(dāng)一個頁面內(nèi)的導(dǎo)航發(fā)生抚恒,這個頁面的URL被改變咱台,但是不會導(dǎo)致導(dǎo)航到這個頁面之外。例如這個事件是當(dāng)錨點鏈接被點擊或者當(dāng)DOM的hashchange事件被觸發(fā)時俭驮。

<h4 id="event-crashed">事件:'crashed'</h4>

返回值為:

  • event Event類型
  • killed Boolean類型

當(dāng)渲染進(jìn)程崩潰或者被殺死的時候被分發(fā)回溺。

<h4 id="event-plugin-crashed">事件:'plugin-crashed'</h4>

返回值為:

  • event Event類型
  • name String類型
  • version String類型

當(dāng)一個插件進(jìn)程崩潰時被分發(fā)。

<h4 id="event-destroyed">事件:'destroyed'</h4>

當(dāng)webContents被銷毀的時候被分發(fā)混萝。

<h4 id="event-before-input-event">事件:'before-input-event'</h4>

返回值為:

在頁面中的keydownkeyup事件被發(fā)出之前被分發(fā)遗遵。調(diào)用event.preventDefault將阻止頁面的keydown/keyup事件發(fā)出。

<h4 id="event-devtools-opened">事件:'devtools-opened'</h4>

當(dāng)開發(fā)工具被打開的時候被分發(fā)逸嘀。

<h4 id="event-devtools-closed">事件:'devtools-closed'</h4>

當(dāng)開發(fā)工具被關(guān)閉的時候被分發(fā)车要。

<h4 id="event-devtools-focused">事件:'devtools-focused'</h4>

當(dāng)開發(fā)工具被聚焦/打開的時候被分發(fā)。

<h4 id="event-certificate-error">事件:'certificate-error'</h4>

返回值為:

  • event Event類型
  • url String類型
  • error String類型 - 錯誤代碼
  • certificate Certificate類型
  • callback Function類型
    • isTrusted Boolean類型 - 表示經(jīng)過思考這個證書是否是可信的崭倘。

當(dāng)驗證url指向的證書失敗時被分發(fā)翼岁。

使用起來和appcertificate-error事件一樣。

<h4 id="event-select-client-certificate">事件:'select-client-certificate'</h4>

返回值為:

  • event Event類型
  • url URL類型
  • certificateList Certificate[]類型
  • callback Function類型
    • certificate Certificate類型 - 必須從給定的列表中選擇一個證書

當(dāng)請求一個客戶端證書時被分發(fā)司光。

使用起來和appselect-client-certificate事件一樣琅坡。

<h4 id="event-login">事件:'login'</h4>

返回值為:

  • event Event
  • request Object
    • method String
    • url URL
    • referrer URL
  • authInfo Object
    • isProxy Boolean
    • scheme String
    • host String
    • port Integer
    • realm String
  • callback Function
    • username String
    • password String

webContents想要進(jìn)行基本驗證的時候被分發(fā)。

使用起來和applogin事件一樣残家。

<h4 id="event-found-in-page">事件:'found-in-page'</h4>

返回值為:

  • event Event類型
  • result Object類型
    • requestId Integer類型
    • activeMatchOrdinal Integer類型 - 主動匹配的位置榆俺。
    • matches Integer類型 - 匹配的數(shù)量。
    • selectionArea Object類型 - 第一匹配區(qū)域的坐標(biāo)。

[webContents.findInPage]請求有有效的結(jié)果時被分發(fā)茴晋。

<h4 id="event-media-started-playing">事件:'media-started-playing'</h4>

媒體開始播放時被分發(fā)迂求。

<h4 id="event-media-paused">事件:'media-paused'</h4>

媒體被暫停或者完成播放時被分發(fā)晃跺。

<h4 id="event-did-change-theme-color">事件:'did-change-theme-color'</h4>

頁面的主題顏色改變時被分發(fā)揩局。這個通常由于有一個meta標(biāo)簽:

<meta name='theme-color' content='#ff0000'>

<h4 id="event-update-target-url">事件:'update-target-url'</h4>

返回值為:

  • event Event類型
  • url String類型

當(dāng)鼠標(biāo)移動到一個鏈接或者鍵盤移動光標(biāo)到鏈接上時被分發(fā)。

<h4 id="event-cursor-changed">事件:'cursor-changed'</h4>

返回值為:

  • event Event類型
  • type String類型
  • image NativeImage類型(可選參數(shù))
  • scale Float類型(可選參數(shù))- 自定義光標(biāo)的縮放因數(shù)
  • size Object類型(可選參數(shù))- 圖片的尺寸
    • width Integer類型
    • height Integer類型
  • hotspot Object類型(可選參數(shù))- 自定義光標(biāo)的熱點的坐標(biāo)coordinates of the custom cursor's hotspot
    • x Integer類型 - x坐標(biāo)
    • y Integer類型 - y坐標(biāo)

當(dāng)光標(biāo)的類型改變的時候被分發(fā)掀虎。type參數(shù)可以是default凌盯、crosshairpointer烹玉、text驰怎、waithelp二打、e-resize县忌、n-resize, ne-resizenw-resize继效、s-resize症杏、se-resizesw-resize瑞信、w-resize厉颤、ns-resizeew-resize凡简、nesw-resize逼友、nwse-resizecol-resize秤涩、row-resize帜乞、m-panninge-panning筐眷、n-panning黎烈、ne-panningnw-panning浊竟、s-panning怨喘、se-panningsw-panning振定、w-panning必怜、movevertical-text后频、cell梳庆、context-menu暖途、aliasprogress膏执、nodrop驻售、copynone更米、not-allowed欺栗、zoom-inzoom-out征峦、grab迟几、grabbingcustom栏笆。

如果type參數(shù)是custom类腮,image參數(shù)將是一個NativeImage類型的自定義光標(biāo)圖標(biāo),scale蛉加,sizehotspot也是關(guān)于自定義光標(biāo)的附加信息蚜枢。

<h4 id="event-context-menu">事件:'context-menu'</h4>

返回值為:

  • event Event類型
  • params Object類型
    • x Integer類型 - x坐標(biāo)
    • y Integer類型 - y坐標(biāo)
    • linkURL String類型 - 調(diào)用了右鍵菜單的節(jié)點外層包裹著的鏈接的URL。
    • linkText String類型 - 與鏈接相關(guān)的文本针饥。如果連接的內(nèi)容是一張圖片那么這個字段可能是一個空的字符串厂抽。
    • pageURL String類型 - 調(diào)用了右鍵菜單的頂級頁面的URL。
    • frameURL String類型 - 調(diào)用了右鍵菜單的subframe的URL打厘。
    • srcURL String類型 - 調(diào)用了右鍵菜單的元素的源地址修肠。元素的源地址是圖片,音頻和視頻户盯。
    • mediaType String類型 - 調(diào)用了右鍵菜單的節(jié)點的類型∷腔可以是none莽鸭、imageaudio吃靠、video硫眨、canvasfileplugin巢块。
    • hasImageContents Boolean類型 - 右鍵菜單是否被一個不為空的圖片所調(diào)用礁阁。
    • isEditable Boolean類型 - 上下文是否可以被編輯。
    • selectionText String類型 - 調(diào)用了右鍵菜單的被選中的文字族奢。
    • titleText String類型 - 調(diào)用了右鍵菜單的標(biāo)題或者alt text姥闭。
    • misspelledWord String類型 - 在鼠標(biāo)下方的拼寫錯誤的單詞,如果有的話越走。
    • frameCharset String類型 - 調(diào)用了右鍵菜單的地方的frame使用的字符編碼格式棚品。
    • inputFieldType String類型 - 如果在輸入?yún)^(qū)調(diào)用了右鍵菜單靠欢,這個字段是輸入?yún)^(qū)的類型⊥埽可能的值有none门怪、plainTextpassword锅纺、other掷空。
    • menuSourceType String類型 - 調(diào)用了右鍵菜單的輸入源《陲保可能是none坦弟、mousekeyboard嚼锄、touch减拭、touchMenu
    • mediaFlags Object類型 - 調(diào)用了右鍵菜單的媒體元素的標(biāo)識区丑。
      • inError Boolean類型 - 媒體元素是否已經(jīng)崩潰拧粪。
      • isPaused Boolean類型 - 媒體元素是否被暫停。
      • isMuted Boolean類型 - 媒體元素是否被靜音沧侥。
      • hasAudio Boolean類型 - 媒體元素是否有音頻可霎。
      • isLooping Boolean類型 - 媒體元素是否是循環(huán)播放。
      • isControlsVisible Boolean類型 - 媒體元素的控制器是否是可見的宴杀。
      • canToggleControls Boolean類型 - 媒體元素的控制器是否是可以操作的癣朗。
      • canRotate Boolean類型 - 媒體元素是否可以被旋轉(zhuǎn)。
    • editFlags Object類型 - 這個標(biāo)識表示渲染器認(rèn)為它是否能夠執(zhí)行對應(yīng)的操作旺罢。
      • canUndo Boolean類型 - 渲染器認(rèn)為它是否可以撤銷操作旷余。
      • canRedo Boolean類型 - 渲染器認(rèn)為它是否可以重做操作。
      • canCut Boolean類型 - 渲染器認(rèn)為它是否可以剪切扁达。
      • canCopy Boolean類型 - 渲染器認(rèn)為它是否可以復(fù)制正卧。
      • canPaste Boolean類型 - 渲染器認(rèn)為它是否可以粘貼。
      • canDelete Boolean類型 - 渲染器認(rèn)為它是否可以刪除跪解。
      • canSelectAll Boolean類型 - 渲染器認(rèn)為它是否可以選擇全部炉旷。

當(dāng)這里有一個新的需要處理的右鍵菜單時會被分發(fā)。

<h4 id="event-select-bluetooth-device">事件:'select-bluetooth-device'</h4>

返回值為:

  • event Event類型
  • devices BluetoothDevice[]類型
  • callback Function類型
    • deviceId String類型

當(dāng)調(diào)用navigator.bluetooth.requestDevice而需要選擇藍(lán)牙設(shè)備的時候被分發(fā)叉讥。webBluetooth應(yīng)該被允許使用navigator.bluetooth接口窘行。如果event.preventDefault沒有被調(diào)用,將會默認(rèn)選擇第一個活動的設(shè)備图仓。callback需要使用被選擇的deviceId來調(diào)用罐盔,傳入空字符串給callback將取消這個請求。

const {app, webContents} = require('electron')
app.commandLine.appendSwitch('enable-web-bluetooth')

app.on('ready', () => {
    webContents.on('select-bluetooth-device', (event, deviceList, callback) => {
        event.preventDefault()
        let result = deviceList.find((device) => {
            return device.deviceName === 'test'
        })
        if (!result) {
            callback('')
        } else {
            callback(result.deviceId)
        }
    })
})

<h4 id="event-paint">事件:'paint'</h4>

返回值為:

  • event Event類型
  • dirtyRect Rectangle類型
  • image NativeImage類型 - 整個frame的圖片數(shù)據(jù)透绩。

當(dāng)一個新的frame被生成的時候會被分發(fā)翘骂。只有臟區(qū)被傳入緩沖區(qū)壁熄。

const {BrowserWindow} = require('electron')

let win = new BrowserWindow({webPreferences: {offscreen: true}})
win.webContents.on('paint', (event, dirty, image) => {
    // updateBitmap(dirty, image.getBitmap())
})
win.loadURL('http://github.com')

<h4 id="event-devtools-reload-page">事件:'devtools-reload-page'</h4>

當(dāng)開發(fā)工具窗口通知webContents重載時被分發(fā)。

<h4 id="event-will-attach-webview">事件:'will-attach-webview'</h4>

返回值為:

  • event Event類型
  • webPreferences Object類型 - 網(wǎng)絡(luò)參數(shù)將被賓客頁面使用碳竟〔萆ィ可以修改這個對象來適應(yīng)賓客頁面的參數(shù)。
  • params Object類型 - 其他的<webview>參數(shù)莹桅,比如說src地址昌执。可以修改這個對象來適應(yīng)賓客頁面的參數(shù)诈泼。

當(dāng)一個<webview>的網(wǎng)絡(luò)內(nèi)容被關(guān)聯(lián)到這個網(wǎng)絡(luò)內(nèi)容上的時候被分發(fā)懂拾。調(diào)用event.preventDefault()將銷毀賓客頁面。

這個事件可以被用來配置一個已經(jīng)被加載的<webview>webContents中的webPreferences铐达,提供設(shè)置一些配置選項的能力岖赋,而這些配置選項不能通過<webview>的參數(shù)來設(shè)置。

<h3 id="instance-methods">實例方法</h3>

<h4 id="contents-loadURL"><code>contents.loadURL(url[, options])</code></h4>

  • url String類型
  • options Object類型(可選參數(shù))
    • httpReferrer String類型(可選參數(shù))- 一個HTTP鏈接的地址瓮孙。
    • userAgent String類型(可選參數(shù))- 一個用戶代理發(fā)出的請求唐断。
    • extraHeaders String類型(可選參數(shù))- 由“\n”分隔的附加的頭部。
    • postData (UploadRawData | UploadFile | UploadFileSystem | UploadBlob)[]類型 -(可選參數(shù))
    • baseURLForDataURL String類型(可選參數(shù))- 通過數(shù)據(jù)地址被加載的文件的基本地址(路徑分隔符后面的部分)杭抠。如果指定的url是一個數(shù)據(jù)地址并且需要加載其他的文件時脸甘,才需要這個參數(shù)。

加載窗口中的url偏灿。這個url必須包含了協(xié)議前綴丹诀,比如說http://或者file://。如果加載需要繞過http緩存翁垂,那么需要使用pragma頭來實現(xiàn)它铆遭。

const {webContents} = require('electron')
const options = {extraHeaders: 'pragma: no-cache\n'}
webContents.loadURL('https://github.com', options)

<h4 id="contents-downloadURL"><code>contents.downloadURL(url)</code></h4>

  • url String類型

不導(dǎo)航過去就開始下載url中的資源。sessionwill-download事件將會被分發(fā)沿猜。

<h4 id="contents-getURL"><code>contents.getURL()</code></h4>

返回值為String類型 - 當(dāng)前頁面的地址疚脐。

const {BrowserWindow} = require('electron')
let win = new BrowserWindow({width: 800, height: 600})
win.loadURL('http://github.com')

et currentURL = win.webContents.getURL()
console.log(currentURL)

<h4 id="contents-getTitle"><code>contents.getTitle()</code></h4>

返回值為String類型 - 當(dāng)前頁面的標(biāo)題。

<h4 id="contents-isDestroyed"><code>contents.isDestroyed()</code></h4>

返回值為Boolean類型 - 當(dāng)前頁面是否被銷毀邢疙。

<h4 id="contents-isFocused"><code>contents.isFocused()</code></h4>

返回值為Boolean類型 - 當(dāng)前頁面是否聚焦。

<h4 id="contents-isLoading"><code>contents.isLoading()</code></h4>

返回值為Boolean類型 - 當(dāng)前頁面是否仍在加載資源望薄。

<h4 id="contents-isLoadingMainFrame"><code>contents.isLoadingMainFrame()</code></h4>

返回值為Boolean類型 - 主frame(不僅僅它內(nèi)部的是iframes或frames)是否仍在加載疟游。

<h4 id="contents-isWaitingForResponse"><code>contents.isWaitingForResponse()</code></h4>

返回值為Boolean類型 - 網(wǎng)頁是否是等待頁面主要資源的一個第一響應(yīng)。

<h4 id="contents-stop"><code>contents.stop()</code></h4>

停止任何尚未完成的導(dǎo)航痕支。

<h4 id="contents-reload"><code>contents.reload()</code></h4>

重載當(dāng)前的網(wǎng)頁颁虐。

<h4 id="contents-reloadIgnoringCache"><code>contents.reloadIgnoringCache()</code></h4>

忽視緩存并重載當(dāng)前頁面。

<h4 id="contents-canGoBack"><code>contents.canGoBack()</code></h4>

返回值為Boolean類型 - 瀏覽器是否可以返回之前的網(wǎng)頁卧须。

<h4 id="contents-canGoForward"><code>contents.canGoForward()</code></h4>

返回值為Boolean類型 - 瀏覽器是否可以轉(zhuǎn)去下一個頁面另绩。

<h4 id="contents-canGoToOffset"><code>contents.canGoToOffset(offset)</code></h4>

  • offset Integer類型

返回值為Boolean類型 - 網(wǎng)頁是否可以定位到offset儒陨。

<h4 id="contents-clearHistory"><code>contents.clearHistory()</code></h4>

清空導(dǎo)航歷史記錄。

<h4 id="contents-goBack"><code>contents.goBack()</code></h4>

讓瀏覽器返回一個頁面笋籽。

<h4 id="contents-goForward"><code>contents.goForward()</code></h4>

讓瀏覽器前進(jìn)一個頁面蹦漠。

<h4 id="contents-goToIndex"><code>contents.goToIndex(index)</code></h4>

  • index Integer類型

通過指定的網(wǎng)頁索引,導(dǎo)航瀏覽器到對應(yīng)的頁面车海。

<h4 id="contents-goToOffset"><code>contents.goToOffset(offset)</code></h4>

  • offset Integer類型

從“當(dāng)前的位置”導(dǎo)航到指定的偏移位置笛园。

<h4 id="contents-isCrashed"><code>contents.isCrashed()</code></h4>

返回值為Boolean類型 - 渲染線程是否已經(jīng)崩潰。

<h4 id="contents-setUserAgent"><code>contents.setUserAgent(userAgent)</code></h4>

  • userAgent String類型

對這個網(wǎng)頁重寫用戶代理侍芝。

<h4 id="contents-getUserAgent"><code>contents.getUserAgent()</code></h4>

返回值為String類型 - 這個網(wǎng)頁的用戶代理研铆。

<h4 id="contents-insertCSS"><code>contents.insertCSS(css)</code></h4>

  • css String類型

給當(dāng)前網(wǎng)頁注入一個CSS樣式。

<h4 id="contents-executeJavaScript"><code>contents.executeJavaScript(code[, userGesture, callback])</code></h4>

  • code String類型
  • userGesture Boolean類型(可選參數(shù))- 默認(rèn)是false州叠。
  • callback Function類型(可選參數(shù))- 腳本執(zhí)行之后被調(diào)用棵红。
    • result Any類型

返回值為Promise類型 - promise可能是帶有執(zhí)行代碼的結(jié)果的resolves,或者如果代碼執(zhí)行失敗那么就是一個rejected promise咧栗。

對頁面中code的評估逆甜。

在瀏覽器窗口中,一些HTML接口楼熄,類似于requestFullScreen忆绰,可以只被用戶的一個手勢而激發(fā)。設(shè)置userGesturetrue將會移除這個限制可岂。

如果執(zhí)行代碼的結(jié)果是一個promise错敢,那么回調(diào)結(jié)果將是這個promise的resolved的值。我們建議你使用返回的Promise來處理Promise中results的代碼缕粹。

contents.executeJavaScript('fetch("https://jsonplaceholder.typicode.com/users/1").then(resp => resp.json())', true)
    .then((result) => {
        console.log(result) // Will be the JSON object from the fetch call
    })

<h4 id="contents-setAudioMuted"><code>contents.setAudioMuted(muted)</code></h4>

  • muted Boolean類型

靜音當(dāng)前網(wǎng)頁中的音頻稚茅。

<h4 id="contents-isAudioMuted"><code>contents.isAudioMuted()</code></h4>

返回值為Boolean類型 - 這個頁面是否已經(jīng)被靜音。

<h4 id="contents-setZoomFactor"><code>contents.setZoomFactor(factor)</code></h4>

  • factor Number類型 - 縮放因數(shù)平斩。

改變縮放因數(shù)為設(shè)置的縮放因數(shù)亚享。縮放因數(shù)是縮放百分比除以100绘面,所以300% = 3.0欺税。

<h4 id="contents-getZoomFactor"><code>contents.getZoomFactor(callback)</code></h4>

  • callback Function類型
    • zoomFactor Number類型

發(fā)送一個請求來獲得當(dāng)前的縮放因數(shù),callback將會被callback(zoomFactor)調(diào)用揭璃。

<h4 id="contents-setZoomLevel"><code>contents.setZoomLevel(level)</code></h4>

  • level Number類型 - 縮放等級

改變縮放等級為設(shè)置的等級晚凿。原始大小為0,每一個增加或減小都將放大或縮小20%瘦馍,默認(rèn)的最大是300%歼秽,最小是50%。

<h4 id="contents-getZoomLevel"><code>contents.getZoomLevel(callback)</code></h4>

  • callback Function類型
    • zoomLevel Numberl類型

發(fā)送一個請求來獲得當(dāng)前的縮放等級情组,callback將會被callback(zoomLevel)調(diào)用燥筷。

<h4 id="contents-setZoomLevelLimits"><code>contents.setZoomLevelLimits(minimumLevel, maximumLevel)</code></h4>

  • minimumLevel Number類型
  • maximumLevel Number類型

不贊成:調(diào)用setVisualZoomLevelLimits代替設(shè)置視覺上的縮放等級上限箩祥。這個方法將會在Electron 2.0中被移除。

<h4 id="contentssetVisualZoomLevelLimits-"><code>contents.setVisualZoomLevelLimits(minimumLevel, maximumLevel)</code></h4>

  • minimumLevel Number類型
  • maximumLevel Number類型

設(shè)置pinch-to-zoom等級的最大值和最小值肆氓。

<h4 id="contents-setLayoutZoomLevelLimits"><code>contents.setLayoutZoomLevelLimits(minimumLevel, maximumLevel)</code></h4>

  • minimumLevel Number類型
  • maximumLevel Number類型

設(shè)置布局基礎(chǔ)(非視覺上的)縮放級別的最大值和最小值袍祖。

<h4 id="contents-undo"><code>contents.undo()</code></h4>

在網(wǎng)頁中執(zhí)行編輯命令undo

<h4 id="contents-redo"><code>contents.redo()</code></h4>

在網(wǎng)頁中執(zhí)行編輯命令redo做院。

<h4 id="contents-cut"><code>contents.cut()</code></h4>

在網(wǎng)頁中執(zhí)行編輯命令cut盲泛。

<h4 id="contents-copy"><code>contents.copy()</code></h4>

在網(wǎng)頁中執(zhí)行編輯命令copy

<h4 id="contents-copyImageAt"><code>contents.copyImageAt(x, y)</code></h4>

  • x Integer類型
  • y Integer類型

復(fù)制給定的定位的圖片到剪貼板键耕。

<h4 id="contents-paste"><code>contents.paste()</code></h4>

在網(wǎng)頁中執(zhí)行編輯命令paste寺滚。

<h4 id="contents-pasteAndMatchStyle"><code>contents.pasteAndMatchStyle()</code></h4>

在網(wǎng)頁中執(zhí)行編輯命令pasteAndMatchStyle

<h4 id="contents-delete"><code>contents.delete()</code></h4>

在網(wǎng)頁中執(zhí)行編輯命令delete屈雄。

<h4 id="contents-selectAll"><code>contents.selectAll()</code></h4>

在網(wǎng)頁中執(zhí)行編輯命令selectAll村视。

<h4 id="contents-unselect"><code>contents.unselect()</code></h4>

在網(wǎng)頁中執(zhí)行編輯命令unselect

<h4 id="contents-replace"><code>contents.replace(text)</code></h4>

  • text String類型

在網(wǎng)頁中執(zhí)行編輯命令replace酒奶。

<h4 id="contents-replaceMisspelling"><code>contents.replaceMisspelling(text)</code></h4>

  • text String類型

在網(wǎng)頁中執(zhí)行編輯命令replaceMisspelling蚁孔。

<h4 id="contents-insertText"><code>contents.insertText(text)</code></h4>

  • text String類型

插入text到獲取焦點的元素。

<h4 id="contents-findInPage"><code>contents.findInPage(text[, options])</code></h4>

  • text String類型 - 要搜索的內(nèi)容惋嚎,不能為空杠氢。
  • options Object類型(可選參數(shù))
    • forward Boolean類型 -(可選參數(shù))是否向前或向后搜索,默認(rèn)為true另伍。
    • findNext Boolean類型 -(可選參數(shù))這個請求是首次請求還是跟隨上一次請求鼻百,默認(rèn)為false
    • matchCase Boolean類型 -(可選參數(shù))搜索是否區(qū)別大小寫摆尝,默認(rèn)為false温艇。
    • wordStart Boolean類型 -(可選參數(shù))是否只從單詞開始查找,默認(rèn)為false堕汞。
    • medialCapitalAsWordStart Boolean類型 -(可選參數(shù)) 當(dāng)結(jié)合wordStart勺爱,接受一個在單詞中間的匹配項,如果這個匹配項以一個大寫字母開頭后面有一個或沒有小寫字母讯检。接受幾個其他的字內(nèi)匹配項渔嚷,默認(rèn)為false晃洒。

發(fā)起一個請求來尋找這個網(wǎng)頁內(nèi)的所有text的匹配項熙宇,并且返回代表這個請求的一個Integer類型的請求ID轻局。這個請求的結(jié)果可以通過訂閱found-in-page事件來獲得。

<h4 id="contents-stopFindInPage"><code>contents.stopFindInPage(action)</code></h4>

  • action String類型 - 當(dāng)要結(jié)束[webContents.findInPage]請求時指定一個活動來停止挡毅。
    • clearSelection - 清除選中。
    • keepSelection - 將選擇轉(zhuǎn)換成一個正常的選擇暴构。
    • activateSelection - 聚焦并點擊選擇的節(jié)點跪呈。

通過提供的action來停止任何對webContentsfindInPage請求段磨。

const {webContents} = require('electron')
webContents.on('found-in-page', (event, result) => {
    if (result.finalUpdate) webContents.stopFindInPage('clearSelection')
})

const requestId = webContents.findInPage('api')
console.log(requestId)

<h4 id="contents-capturePage"><code>contents.capturePage([rect, ]callback)</code></h4>

  • rect Rectangle類型(可選參數(shù))- 要捕獲的頁面的區(qū)域
  • callback Function類型

捕獲一個在頁面rect范圍內(nèi)的快照。當(dāng)上面的方法完成后callback將會被callback(image)調(diào)用耗绿。這個image是一個存儲了快照的NativeImage類型的實例苹支。省略rect將會捕獲整個可見的頁面。

<h4 id="contents-hasServiceWorker"><code>contents.hasServiceWorker(callback)</code></h4>

  • callback Function類型
    • hasWorker Boolean類型

檢測到如果有任何的ServiceWorker被注冊那么久返回一個boolean類型的返回值給callback误阻。

<h4 id="contents-unregisterServiceWorker"><code>contents.unregisterServiceWorker(callback)</code></h4>

  • callback Function類型
    • success Boolean類型

注銷任何現(xiàn)存的ServiceWorker债蜜,并且返回一個boolean類型的返回值給callback,當(dāng)JS的promise被滿足返回true究反,或者JS的promise被拒絕則返回false寻定。

<h4 id="contents-print"><code>contents.print([options])</code></h4>

  • options Object類型(可選參數(shù))
    • silent Boolean類型 - 不詢問用戶的打印設(shè)置。默認(rèn)為false精耐。
    • printBackground Boolean類型 - 也打印網(wǎng)頁的背景顏色和圖片狼速。默認(rèn)是false

打印窗口的網(wǎng)頁卦停。當(dāng)silent被設(shè)置為true向胡,Electron將得到系統(tǒng)的默認(rèn)打印機(jī)和打印的默認(rèn)設(shè)置。

在頁面調(diào)用window.print()相當(dāng)于調(diào)用webContents.print({silent: false, printBackground: false})惊完。

使用page-break-before: always;CSS樣式被強制打印在一個新的頁面上僵芹。

<h4 id="contents-printToPDF"><code>contents.printToPDF(options, callback)</code></h4>

  • options Object類型
    • marginsType Integer類型 -(可選參數(shù))指定使用的邊距類型,使用0為默認(rèn)邊距小槐,1為沒有邊距拇派,2為最小邊距。
    • pageSize String類型 -(可選參數(shù))指定生成的PDF的頁面尺寸本股∨嗜可以是A3A4拄显、A5苟径、LegalLetter躬审、Tabloid或者一個包含了使用微米為單位的寬和高的對象棘街。
    • printBackground Boolean類型 -(可選參數(shù))是否打印CSS背景。
    • printSelectionOnly Boolean類型 -(可選參數(shù))是否只打印選中項承边。
    • landscape Boolean類型 -(可選參數(shù))true是landscape遭殉,false是portrait。
  • callback Function類型
    • error Error類型
    • data Buffer類型

使用Chromium的預(yù)覽打印自定義設(shè)置打印窗口的網(wǎng)頁為PDF博助。

完成后callback將會被callback(error, data)調(diào)用险污。data是一個包含了生成的PDF數(shù)據(jù)的Buffer類型。

如果CSS的@page規(guī)則被使用在這個網(wǎng)頁中,那么landscape將會被忽略蛔糯。

默認(rèn)情況下拯腮,一個空的options獎杯視為:

{
    marginsType: 0,
    printBackground: false,
    printSelectionOnly: false,
    landscape: false
}

使用page-break-before: always;CSS樣式被強制打印在一個新的頁面上。

一個webContents.printToPDF的例子:

const {BrowserWindow} = require('electron')
const fs = require('fs')

let win = new BrowserWindow({width: 800, height: 600})
win.loadURL('http://github.com')

win.webContents.on('did-finish-load', () => {
    // Use default printing options
    win.webContents.printToPDF({}, (error, data) => {
        if (error) throw error
        fs.writeFile('/tmp/print.pdf', data, (error) => {
            if (error) throw error
            console.log('Write PDF successfully.')
        })
    })
})

<h4 id="contents-addWorkSpace"><code>contents.addWorkSpace(path)</code></h4>

  • path String類型

給開發(fā)工具工作空間添加指定路徑蚁飒。必須在開發(fā)工具創(chuàng)建完成后使用:

const {BrowserWindow} = require('electron')
let win = new BrowserWindow()
win.webContents.on('devtools-opened', () => {
    win.webContents.addWorkSpace(__dirname)
})

<h4 id="contents-removeWorkSpace"><code>contents.removeWorkSpace(path)</code></h4>

  • path String類型

從開發(fā)工具工作空間中移除指定的路徑动壤。

<h4 id="contents-openDevTools"><code>contents.openDevTools([options])</code></h4>

  • options Object類型(可選參數(shù))
    • mode String類型 - 使用指定的dock狀態(tài)打開開發(fā)工具,可以是right淮逻、bottom琼懊、undockeddetach爬早。默認(rèn)是上一次使用的dock狀態(tài)哼丈。在undocked模式中它可能使dock返回。在detach模式中它則不是凸椿。

打開開發(fā)工具削祈。

<h4 id="contents-closeDevTools"><code>contents.closeDevTools()</code></h4>

關(guān)閉開發(fā)工具。

<h4 id="contents-isDevToolsOpened"><code>contents.isDevToolsOpened()</code></h4>

返回值為Boolean類型 - 開發(fā)工具是否被打開脑漫。

<h4 id="contents-toggleDevTools"><code>contents.toggleDevTools()</code></h4>

使用開發(fā)工具髓抑。

<h4 id="contents-inspectElement"><code>contents.inspectElement(x, y)</code></h4>

  • x Integer類型
  • y Integer類型

開始檢查點(x, y)位置的元素。

<h4 id="contents-inspectServiceWorker"><code>contents.inspectServiceWorker()</code></h4>

Opens the developer tools for the service worker context.

<h4 id="contents-send"><code>contents.send(channel[, arg1][, arg2][, ...])</code></h4>

  • channel String
  • ...args any[]

通過channel來發(fā)送一個異步消息給渲染進(jìn)程优幸,你也可以發(fā)送任意類型的y參數(shù)吨拍。參數(shù)將在JSON內(nèi)部被聯(lián)播,因此沒有函數(shù)或者原型鏈被引用网杆。

渲染進(jìn)程可以使用ipcRenderer模塊通過監(jiān)聽channel來處理消息羹饰。

一個從主進(jìn)程發(fā)送消息到渲染線程的例子:

// In the main process.
const {app, BrowserWindow} = require('electron')
let win = null

app.on('ready', () => {
    win = new BrowserWindow({width: 800, height: 600})
    win.loadURL(`file://${__dirname}/index.html`)
    win.webContents.on('did-finish-load', () => {
        win.webContents.send('ping', 'whoooooooh!')
    })
})


<!-- index.html -->
<html>
<body>
    <script>
        require('electron').ipcRenderer.on('ping', (event, message) => {
            console.log(message)  // Prints 'whoooooooh!'
        })
    </script>
</body>
</html>

<h4 id="contents-enableDeviceEmulation"><code>contents.enableDeviceEmulation(parameters)</code></h4>

  • parameters Object類型
    • screenPosition String類型 - 設(shè)置要模擬的屏幕類型(默認(rèn):desktop
      • desktop - 桌面屏幕類型
      • mobile - 手機(jī)屏幕類型
    • screenSize Object類型 - 設(shè)置模擬屏幕的尺寸(screenPosition==mobile
      • width Integer類型 - 設(shè)置模擬屏幕的寬度
      • height Integer類型 - 設(shè)置模擬屏幕得高度
    • viewPosition Object類型 - 屏幕中視圖的位置(screenPosition==mobile)(默認(rèn):{x: 0, y: 0}
      • x Integer類型 - 設(shè)置左上角x軸的偏移值
      • y Integer類型 - 設(shè)置左上角y軸的偏移值
    • deviceScaleFactor Integer類型 - 設(shè)置設(shè)備的縮放因素(如果原始設(shè)備縮放因素默認(rèn)為0)(默認(rèn):0
    • viewSize Object類型 - 設(shè)置模擬視圖的尺寸(為空則意味著不會覆蓋)
      • width Integer類型 - 設(shè)置模擬視圖的寬度
      • height Integer類型 - 設(shè)置模擬視圖的高度
    • fitToView Boolean類型 - 模擬視圖是否需要縮放到適配有效空間(默認(rèn):false
    • offset Object類型 - 模擬視圖內(nèi)部可用空間的偏移量(不適合視圖模式)(默認(rèn):{x: 0, y: 0}
      • x Float類型 - 設(shè)置左上角x軸的偏移值
      • y Float類型 - 設(shè)置左上角y軸的偏移值
    • scale Float類型 - 縮放模擬視圖內(nèi)部可用空間(不適合視圖模式)(默認(rèn):1

通過給定的參數(shù)允許設(shè)備模擬

<h4 id="contents-disableDeviceEmulation"><code>contents.disableDeviceEmulation()</code></h4>

關(guān)閉通過webContents.enableDeviceEmulation開啟的設(shè)備模擬。

<h4 id="contents-sendInputEvent"><code>contents.sendInputEvent(event)</code></h4>

  • event Object類型
    • type String類型(必傳參數(shù))- 事件的類型碳却,可以是mouseDown队秩、mouseUpmouseEnter昼浦、mouseLeave馍资、contextMenumouseWheel关噪、mouseMove鸟蟹、keyDownkeyUp使兔、char建钥。
    • modifiers String[]類型 - 一個事件的調(diào)節(jié)器數(shù)組,可以包含shift虐沥、control熊经、altmetaisKeypad奈搜、isAutoRepeat悉盆、leftButtonDownmiddleButtonDown馋吗、rightButtonDowncapsLock秋秤、numLock宏粤、leftright灼卢。

發(fā)送一個輸入事件到頁面绍哎。

對于鍵盤事件,event對象也有以下屬性:

  • keyCode String(必傳參數(shù))- 字符將被作為鍵盤事件而發(fā)送鞋真。只能使用Accelerator中的鍵碼值崇堰。

對于鼠標(biāo)事件,event對象也有以下屬性:

  • x Integer類型(必傳參數(shù))
  • y Integer類型(必傳參數(shù))
  • button String類型 - 按下的按鈕涩咖,可以是left海诲、middleright
  • globalX Integer類型
  • globalY Integer類型
  • movementX Integer類型
  • movementY Integer類型
  • clickCount Integer類型

對于鼠標(biāo)滾輪事件檩互,event對象也有以下屬性:

  • deltaX Integer類型
  • deltaY Integer類型
  • wheelTicksX Integer類型
  • wheelTicksY Integer類型
  • accelerationRatioX Integer類型
  • accelerationRatioY Integer類型
  • hasPreciseScrollingDeltas Boolean類型
  • canScroll Boolean類型

<h4 id="contents-beginFrameSubscription"><code>contents.beginFrameSubscription([onlyDirty ,]callback)</code></h4>

  • onlyDirty Boolean類型(可選參數(shù))- 默認(rèn)值為false
  • callback Function類型
    • frameBuffer Buffer類型
    • dirtyRect Rectangle類型

開始訂閱報告事件和捕獲frames特幔,當(dāng)有一個報告事件時callback會被callback(frameBuffer, dirtyRect)調(diào)用。

frameBuffer是一個包含原始像素數(shù)據(jù)的Buffer闸昨。在大多數(shù)機(jī)器上蚯斯,像素數(shù)據(jù)實際上被存儲為32位BGRA格式,但是真實顯示取決于中央處理器的字節(jié)順序(大多數(shù)現(xiàn)代中央處理器是little-endian饵较,在big-endian中央處理器的機(jī)器上數(shù)據(jù)是32位ARGB格式)拍嵌。

dirtyRect是帶有x, y, width, height這些屬性的對象,來描述頁面的重繪部分循诉。如果onlyDirty被設(shè)置為true横辆,frameBuffer將只會包含重繪區(qū)域。onlyDirty默認(rèn)為false打洼。

<h4 id="contents-endFrameSubscription"><code>contents.endFrameSubscription()</code></h4>

結(jié)束訂閱frame報告事件龄糊。

<h4 id="contents-startDrag"><code>contents.startDrag(item)</code></h4>

  • item Object類型
    • file 字符串或者files類型的數(shù)組 - 開始拖拽的文件的路徑。
    • icon NativeImage類型 - MacOS下這個圖片不可以為空募疮。

設(shè)置這個item作為當(dāng)前拖拽操作的拖拽項炫惩,file是被拖拽文件的絕對路徑,icon是當(dāng)拖拽時光標(biāo)下方展示的圖片阿浓。

<h4 id="contents-savePage"><code>contents.savePage(fullPath, saveType, callback)</code></h4>

  • fullPath String類型 - 文件的完整路徑他嚷。
  • saveType String類型 - 指定保存類型。
    • HTMLOnly - 只保存當(dāng)前頁面為HTML。
    • HTMLComplete - 保存完整的HTML頁面筋蓖。
    • MHTML - 保存完整的HTML頁面為MHTML卸耘。
  • callback Function類型 - (error) => {}.
    • error Error類型

返回值為Boolean類型 - true表示保存頁面的過程已經(jīng)成功開始。

const {BrowserWindow} = require('electron')
let win = new BrowserWindow()

win.loadURL('https://github.com')

win.webContents.on('did-finish-load', () => {
    win.webContents.savePage('/tmp/test.html', 'HTMLComplete', (error) => {
        if (!error) console.log('Save page successfully')
    })
})

<h4 id="contents-showDefinitionForSelection"><code>contents.showDefinitionForSelection() <i>(MacOS)</i></code></h4>

展示用來在頁面上對選中的單詞進(jìn)行搜索的彈出式字典粘咖。

<h4 id="contents-setSize"><code>contents.setSize(options)</code></h4>

設(shè)置頁面的尺寸蚣抗。這個只支持<webview>的guest內(nèi)從。

  • options Object類型
    • normal Object類型(可選參數(shù))- 頁面的正常大小瓮下。這個可以被用在與disableguestresize參數(shù)聯(lián)合翰铡,來手動調(diào)整webview的guest內(nèi)容的大小。
      • width Integer類型
      • height Integer類型

<h4 id="contents-isOffscreen"><code>contents.isOffscreen()</code></h4>

返回值為Boolean類型 - 表示是否啟用離屏渲染讽坏。

<h4 id="contents-startPainting"><code>contents.startPainting()</code></h4>

如果離屏渲染被啟動但是沒有開始繪制锭魔,那么就讓它開始繪制。

<h4 id="contents-stopPainting"><code>contents.stopPainting()</code></h4>

如果離屏渲染被啟動并且正在繪制路呜,那么就讓它停止繪制迷捧。

<h4 id="contents-isPainting"><code>contents.isPainting()</code></h4>

返回值為Boolean類型 - 如果離屏渲染被啟動則返回當(dāng)前是否正在繪制。

<h4 id="contents-setFrameRate"><code>contents.setFrameRate(fps)</code></h4>

  • fps Integer類型

如果離屏渲染被啟動那么設(shè)置幀數(shù)為指定的數(shù)值胀葱。只接受在1到60之間的值漠秋。

<h4 id="contents-getFrameRate"><code>contents.getFrameRate()</code></h4>

返回值為Integer類型 - 如果離屏渲染被啟動那么返回當(dāng)前幀數(shù)。

<h4 id="contents-invalidate"><code>contents.invalidate()</code></h4>

安排一次這個網(wǎng)絡(luò)內(nèi)容所在的窗口的全屏重繪巡社。

如果離屏渲染被啟那么使frame無效并且通過'paint'事件生成一個新的膛堤。

<h3 id="instance-properties">實例屬性</h3>

<h4 id="contents-id"><code>contents.id</code></h4>

一個作為WebContents的唯一的ID的整數(shù)。

<h4 id="contents-session"><code>contents.session</code></h4>

一個被這個webContents使用的Session對象(session

<h4 id="contents-hostWebContents"><code>contents.hostWebContents</code></h4>

一個可能擁有這個WebContents的WebContents實例

<h4 id="contents-devToolsWebContents"><code>contents.devToolsWebContents</code></h4>

這個WebContents的開發(fā)工具的WebContents晌该。

注意:用戶不要存儲這個對象肥荔,因為當(dāng)這個開發(fā)工具被關(guān)閉的時候它可能會變?yōu)?code>null。

<h4 id="contents-debugger"><code>contents.debugger</code></h4>

這個webContents的一個Debugger實例朝群。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末燕耿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子姜胖,更是在濱河造成了極大的恐慌誉帅,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件右莱,死亡現(xiàn)場離奇詭異蚜锨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)慢蜓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門亚再,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人晨抡,你說我怎么就攤上這事氛悬≡蛱辏” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵如捅,是天一觀的道長棍现。 經(jīng)常有香客問我,道長镜遣,這世上最難降的妖魔是什么己肮? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮悲关,結(jié)果婚禮上朴肺,老公的妹妹穿的比我還像新娘。我一直安慰自己坚洽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布西土。 她就那樣靜靜地躺著讶舰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪需了。 梳的紋絲不亂的頭發(fā)上跳昼,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音肋乍,去河邊找鬼鹅颊。 笑死,一個胖子當(dāng)著我的面吹牛墓造,可吹牛的內(nèi)容都是我干的堪伍。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼觅闽,長吁一口氣:“原來是場噩夢啊……” “哼帝雇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蛉拙,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤尸闸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后孕锄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吮廉,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年畸肆,在試婚紗的時候發(fā)現(xiàn)自己被綠了宦芦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡恼除,死狀恐怖踪旷,靈堂內(nèi)的尸體忽然破棺而出曼氛,到底是詐尸還是另有隱情,我是刑警寧澤令野,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布舀患,位于F島的核電站,受9級特大地震影響气破,放射性物質(zhì)發(fā)生泄漏聊浅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一现使、第九天 我趴在偏房一處隱蔽的房頂上張望低匙。 院中可真熱鬧,春花似錦碳锈、人聲如沸顽冶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽强重。三九已至,卻和暖如春贸人,著一層夾襖步出監(jiān)牢的瞬間间景,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工艺智, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留倘要,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓十拣,卻偏偏與公主長得像封拧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子父晶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理哮缺,服務(wù)發(fā)現(xiàn),斷路器甲喝,智...
    卡卡羅2017閱讀 134,600評論 18 139
  • 原文:https://github.com/electron/electron/blob/master/docs/...
    Shmily落墨閱讀 18,992評論 1 5
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測試 ...
    KeKeMars閱讀 6,305評論 0 6
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法尝苇,類相關(guān)的語法,內(nèi)部類的語法埠胖,繼承相關(guān)的語法糠溜,異常的語法,線程的語...
    子非魚_t_閱讀 31,587評論 18 399
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,869評論 6 13