https頁面中再次出現莫名的安全警告

2021-09-05 17:44:46 字數 1049 閱讀 9625

上個月費半天勁搞定了乙個https頁面中莫名其妙的安全警告,結果今天又被tester逮到了乙個。這個似乎比上一次哪個更有莫名其妙一點點,當然這個安全警告也是乙個不能穩定復現的問題。從具體場景來看,說是ie的問題也行,說是實現上的問題似乎也可以。

具體的出錯場景是這樣的:頁面中有乙個iframe做的模擬editor。我們知道,使用元素的contenteditable屬性開啟的編輯效果,在輸入回車的時候,會預設產生乙個

元素,而輸入的內容預設都回被包圍在標籤中。當我們在這個editor中刪除一行時,這個editor也會預設幫我們刪掉這個

元素,這樣看來似乎是個透明的操作,沒有什麼問題。但是問題恰恰就來自於這個預設的刪除。下面是這個editor的部分截圖:

在這個編輯器中,當游標位於某一行上時,該行會被highlight。而這個highlight是通過修改editor預設插入的p元素的style屬性實現的,如上圖效果。在移動游標的時候,如果有跨行的行為,也就是從乙個p元素進入了另乙個p元素,那麼就會恢復原來highlight的那個元素,從新highlight新的元素,也就是有乙個跟隨游標所在位置highlight的效果。如果是移動游標位置,不管怎麼操作都是沒有任何問題的。可是當我們使用退格鍵刪除一行的時候,我們剛才說了,editor會自動把刪除行的p元素也刪掉(實際上是從dom樹中將其移走),這時如果我們再去修改這個已刪除的p元素的style的屬性,那麼ie就會跳出那個煩人的安全警告視窗(ie6和ie7皆有此問題)。

這裡說一下,雖然元素被刪除,但是ie會預設快取(保留該元素例項)一段時間,所以這時我們仍然可以訪問這個被刪除的元素,而不會出現執行時錯誤。當然被從dom樹中刪除的元素也有自己的特點,就是它的parentelement會是null。這樣我們就只需要在取消highlight的方法上加上對元素parentelement的判斷就行了,修改resumeline方法的**為:

queryeditor.resumeline(line)

雖然就這樣解決了,不過仍感覺這類問題真是一波還未平息一波又來侵襲的定時炸彈啊。。。

https 頁面中引入 http 資源的報錯

今天在做echart地圖頁面的時候,碰到乙個小問題,頁面報錯如下 原因是我在github page的頁面上,請求了乙個http協議的jq庫,但是我的github是基於https協議的,但script標籤是不受同源政策的限制的,這顯然只是個提醒,如何解決這個問題呢?什麼是相對協議呢?簡而言之,就是將u...

https 頁面中引入 http 資源的解決方式

1.瀏覽器預設是不允許在 https 裡面引用 http 資源的,一般都會彈出提示框,而且如果在乙個 https 頁面裡動態的引入 http 資源,比如引入乙個 js 檔案,會被直接 block 掉的。chrome v21 之後,在 ssl 加密頁面 embed 非 ssl 的 flash 資源也會...

HTTPS 中雙向認證

這裡總結為詳細的步驟 瀏覽器傳送乙個連線請求給安全伺服器。伺服器將自己的證書,以及同證書相關的資訊傳送給客戶瀏覽器。客戶瀏覽器檢查伺服器送過來的證書是否是由自己信賴的 ca 中心所簽發的。如果是,就繼續執行協議 如果不是,客戶瀏覽器就給客戶乙個警告訊息 警告客戶這個證書不是可 以信賴的,詢問客戶是否...