1. 程式人生 > >前端工程師工作中常見問題解決辦法(ios底部輸入框,a中download,ie11...)

前端工程師工作中常見問題解決辦法(ios底部輸入框,a中download,ie11...)

window.open() 在 ajax 回撥中被阻止

由於安全限制,開啟新標籤的操作需由使用者直接觸發,使用程式觸發預設情況下會被阻止,因此把 winodw.open() 的程式碼放在事件處理函式中即可解決此問題。

 固定在底部的輸入框,在 IOS 裝置上顯示的問題

  1. 當輸入框以 flex 佈局的形式固定在底部,如:

.page {
  height: 100%;
  display: flex;
  flex-direction: column;

  & > .container {
    flex: 1;
    overflow: auto;
  }

  & > footer {
    height: 44px;
    line-height: 44px;

    input {}
  }
}

以上只給出 css 程式碼,html 程式碼自行腦補,此時會出現如下問題(測試時間:2017-09-01 12:18:08) 
1. 輸入框被軟鍵盤遮住(系統輸入法或者搜狗輸入法) 
2. 輸入內容之後,輸入框不可見,游標仍在,此時,軟鍵盤的完成按鈕,關閉軟鍵盤,然後向下滑動 .container 的內容,輸入框顯示正常

 解決辦法: 
上述 css 調整如下:

 .page {
   height: 100%;
   display: flex;
   flex-direction: column;
   position: relative;

   & > .container {
     flex: 1;
     overflow: auto;
   }

   & > footer {
     position: absolute;
     bottom: 0;
     left: 0;
     width: 100%;
     height: 44px;
     line-height: 44px;

     input {}
   }
 }
1

 在 input 聚焦時的事件處理函式中,寫如下程式碼:

 window.setTimeout(() => {
   document.body.scrollTop = document.body.scrollHeight
 }, 200)

 ios input disabled 顏色顯示太淺的問題

解決辦法:

:disabled {
      -webkit-text-fill-color: #666;
      opacity: 1;
      border: 1px solid #DADADE;
}

a 標籤的 download 屬性沒作用 

  1. Firefox考慮到安全問題,如果要下載的檔案和當前頁面不是在同一個域名中,將在瀏覽器中開啟。
  2. 在Chrome和Opera中,如果要下載的檔案和當前頁面不是在同一個域名中,瀏覽器會忽視download屬性,其結果就是檔名不變。

 ie11

  1. ie11 不支援 width: initial; 

width: initial; 在 ie 11 無法識別,應使用 width: auto 替代。

  • ie11 border-box 對 flex 彈性子元素無效 
    如:flex: 0 0 100px; padding-left: 10px; 此時元素的寬度的為 110px,為避免在 ie 上出現樣式不一致的問題,應避免寫和上述類似的程式碼。

 query-string 元件

query-string 存在 相容性 問題,該元件使用了 Object.assign ,以及在構建之後會出現 const 的問題

Map 的簡寫 

new Map([ [ ‘key’, ‘value’ ] ]) 的語法,babel 在轉換的時候,會保留原始程式碼,iOS 8 不支援這種語法,寫的時候應避免出現這種程式碼。 – 2018年07月11日

相關推薦

前端工程師工作常見問題解決辦法(ios底部輸入adownloadie11...)

window.open() 在 ajax 回撥中被阻止 由於安全限制,開啟新標籤的操作需由使用者直接觸發,使用程式觸發預設情況下會被阻止,因此把 winodw.open() 的程式碼放在事件處理函式中即可解決此問題。  固定在底部的輸入框,在 IOS 裝置上顯示的問題

ios底部輸入輸入時被隱藏的bug解決

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta content="no-cache" http-equiv="pragma"> <

web前端工程師工作遇到難以解決的問題

1).margin-top,margin-bottom不能正常顯示時 一.有時會遇到外層中的子層使用margin-top不管用的情況;這裡我們需要在子層的前後加上一個 div{height:0;overflow:hidden;} 例 CSS樣式表中: #box {ba

Web前端工程師工作前 VS 工作

工程師你還能想起工作前的愜意與瀟灑嗎?睡到自然醒那是不在話下,每天行程也安排的滿滿,吃喝玩樂手到擒來,可是工作後的你……算了,說多了都是眼淚,還是緬懷一下吧~~~http://www.icketang.com人生那麽短,何苦碌碌無為。雖然你還懷念工作前的美好憧憬,但又窮又閑的生活,再年輕又有何用。也許有的人說

eclipse打斷點只進入class文件解決辦法

java項目 inf src ima 就會 fin .html defined 技術分享 內容來源 https://www.cnblogs.com/scode2/p/8671908.html#undefined 是由於對應的Java類跟編譯後的class文件,沒有關聯上,

eclipse打斷點只進入class檔案解決辦法

內容來源 https://www.cnblogs.com/scode2/p/8671908.html#undefined 是由於對應的Java類跟編譯後的class檔案,沒有關聯上, 解決辦法: 在打斷點除錯的時候,如果發現進入到了class檔案,先彆著急關閉class檔案,在該class檔案

error C2248: “CObject::CObject”: 無法訪問 private 成員(在“CObject”類宣告)---解決辦法

如果自己定義了一個類,該類自身沒有過載賦值運算子(=)或者拷貝建構函式(把類物件作為引數直接傳入)都會造成此錯誤   在我們定義的Class中如果需要繼承,或者是必須繼承Object類時,我們又需要對類的物件進行操作是,會出現: error C2248: “CObject::COb

“操作無法完成因為其中的資料夾或檔案已在另一個程式開啟”解決辦法

在windows系統中,我們經常會遇到這樣一個問題:刪除某一個檔案或者資料夾,被提醒:操作無法完成,因為其中的資料夾或檔案已在另一個程式中開啟。 這個時候我們一般會先檢查是否真的有程式或者檔案打開了沒有關閉,但是我們在桌面或者工作管理員中找不到該程式。這個問題困擾了我很久,認為下次重啟

Oprofile編譯過程出錯解決辦法

“liberty library not found” error when configuring Oprofile 解決辦法: $sudo apt-get install libiberty-dev     “bfd library not found”

Pycharm常見解決辦法

Pycharm常見解決辦法 錯誤資訊1:(Spellchecker inspection helps locate typos and misspelling in your code, comments and literals, and fix them in one click

關於專案中彈出層再彈一層解決辦法

開發做專案,新建修改一般都已經封裝好了彈出框的方法,在彈出的頁面如果再次呼叫封裝的彈出框的時候,會把原本的彈出框給覆蓋了,這樣就失去了想要的效果。在這個時候就需要用window.open()方法了 window.open(URL,name,features,replace)

Win8安裝驅動時提示“雜湊值不在指定的目錄檔案”的解決辦法

1、Windows鍵+C,或滑鼠螢幕右下角 2、設定→更多電腦設定 3、左邊選常規,右下角重新啟動 上面3個步驟也可用這個方法替代:Windows鍵+R→shutdown.exe /r /o /f /t 00→確定 4、等幾秒鐘會出現三個選項,選擇疑難解答 5、高階

docker 容器亂碼解決辦法

臺上傳檔案到伺服器後,伺服器返回給前臺的檔案列表中出現中文亂碼,所有的中文檔名全部變成?,英文檔名則正常顯示。   問題經過定位,發現後臺程式碼的multipartfile類在執行transterto的方法時就發生了此異常,然而配置檔案集中的multipartResolver以及enco

win10 遠端桌面時使用者名稱密碼無誤仍然提示憑證不工作問題 的解決辦法

在被遠端的計算機進行設定      開始-->執行->gpedit.msc->計算機配置->Windows設定->安全設定->本地策略->安全選項->

IDEA:解決辦法:IntelliJ Java:-source 1.3不支援使用-source 5 或更高的版本一啟用

解決辦法:IntelliJ Java:-source 1.3中不支援,使用-source 5 或更高的版本一啟用 報錯: Java:-source 1.3中不支援增強型 for 迴圈 (使用-source 5 或更高的版本一啟用for-each迴圈) 我

bower安裝前端框架包permission denied解決辦法

前幾天裝了雙系統,嚐鮮裝了ubuntu17.10,發現好像有好多軟體不相容,網上解決方法也不多,於是放棄了17,迴歸到16.04系統,好了,這些都是題外話,由於專案程式碼用到bower,而我的bower在載入時候報錯/u

日誌無法列印到檔案解決辦法

2. 檢視logback.xml或lo4j是否在專案的src目錄下,由於jvm啟動時會在src目錄下尋找logback.xml檔案載入至記憶體中,若尋找不到logback配置,則會載入預設的logback配置(即將日誌輸出至控制檯中)

QT 編譯通過但是執行出現程式異常結束或者crashed的問題 在QT creator最佳解決辦法

1 問題描述 重灌了系統,然後,下了最新的qt的環境,然後嘗試跑最基本的qt自帶的例項,發現錯誤。已經數次遇到這種情況了。 用了網上的一些方法,發現總是隻能解決一次問題,換了一個系統或者版本編譯器,結果又要重新搞一遍,好煩啊, 沒有個一勞永逸的方法了嗎?不服啊,今天研究了一

artdialog在ie下點選關閉會嵌入到頁面解決辦法

原頁面: 點選artdialog後: 點選儲存或者取消後: 這問題夠奇葩把,不知道你有沒有遇到呢、。 解決辦法如下(在原始碼上加上紅色字型程式碼即可): $('#picadd').click(function(){var bdialog = art

對生產者和消費者問題的另一個解決辦法是使用QWaitCondition(封裝好了wakeOnewakeAll而且與QReadWriteLock對接幾乎是萬能的辦法

thread wak clu cor int csdn 但是 targe get 對生產者和消費者問題的另一個解決辦法是使用QWaitCondition,它允許線程在一定條件下喚醒其他線程。其中wakeOne()函數在條件滿足時隨機喚醒一個等待線程,而wakeAll()函數