這個好難...
我的任務是為用 PHP 制作的大型系統構建一個模塊。最重要的規則是我不能接觸核心系統的代碼,所以我不能修復它的一些錯誤。
我的模塊的主要服務是創建一個自定義檔案,該檔案不是由系統默認編輯器編輯,而是由我的模塊創建的自定義表單。
為了防止用戶編輯自定義檔案而不是填寫表單,我可以blocked在創建時將檔案設定為。
但即使檔案被阻止,系統也會在新的彈出視窗中打開其默認編輯器,然后顯示一條與阻止無關的錯誤錯誤訊息,并且弄亂了用戶的頭腦。
我可以通過更改核心代碼中的幾行在一分鐘內解決這個問題,但是我會失去作業。我也不能要求系統的所有者解決這個問題,因為它需要永遠的時間(所有者來自公共機構)。
系統函式是這樣的:
- 當用戶創建檔案時,它會將執行傳遞給每個模塊上的一個函式,因此這些模塊可以對檔案創建做出反應;
- 該模塊接收有關創建的檔案的資料并檢查其型別是否為自定義檔案型別,如果為真則阻止它;
- 模塊將執行傳遞回代碼系統,代碼系統完成創建檔案(所以我不能使用,
die()否則根本不會創建檔案); - 系統打開一個編輯器,以便用戶可以將內容放入其中。
所以我想到了一個想法,我的模塊可以在阻止檔案后輸出一個帶有代碼的 javascript 標簽,該代碼將阻止核心系統創建的 javascript 代碼使用該window.open()命令,或者至少隱藏這個彈出視窗。
有沒有辦法用javascript來做到這一點?
uj5u.com熱心網友回復:
如果您的代碼可以在打開之前運行,您可以覆寫打開:
const myOpen = window.open;
let iwanttopen = false:
window.open = function() {
if (iwanttoopen) return myOpen(...arguments); // here YOU decide
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/348197.html
標籤:javascript php html
下一篇:每頁需要頁腳和頁眉,但錯誤500
