IIλ jesus2099/konami-command#372μμ Firefox v57 + Greasemonkey v4κ° μ 체 URL https?://host.tld/pathname
μμλ§ μλνκ³ λ μ΄μ /pathname
μμλ§ μλνμ§ μλλ€λ κ²μ μμμ°¨λ Έμ΅λλ€.
Firefox v57 + λ€λ₯Έ GM μμ§μ μ΄ νκ·μ μν₯μ λ°μ§ μμ΅λλ€. μ΄κ²μ΄ μ κ° μ¬κΈ°μμ ν°μΌμ μ¬λ μ΄μ μ
λλ€.
μ ν΄κ²° λ°©λ² μμλ URL μμ self.location.protocol + "//" + self.location.host +
λ₯Ό μΆκ°ν΄μΌ νμ΅λλ€.
μ¬μ©μ μ€ν¬λ¦½νΈκ° μ€νλλ μ½ν μΈ μ€ν¬λ¦½νΈ 컨ν μ€νΈμμ μμ²μ μ€ννλ €λ©΄ μ 체 URLμ μ¬μ©ν΄μΌ ν©λλ€.
μ 체 URLμ μ¬μ©νμ§ μμΌλ €λ©΄ window.wrappedJSObject
μ λν λ©μλλ₯Ό μ¬μ©νκ³ exportFunction()
μ¬μ©νμ¬ μ€ννλ λ° νμν κΈ°λ₯(onreadystatechange λ±)μ λ΄λ³΄λΌ μ μμ΅λλ€. λ΄ μ μμ μ 체 URLμ μ¬μ©νλ κ²μ
λλ€.
λμμ μ£Όμ
μ λλ¨ν κ°μ¬ν©λλ€.
μ’μ΅λλ€. WebExtensions μμ€ν
μ μ¬μμ λ°λ₯Έ κ²μ
λλ€. λ§μ΅λκΉ?
λλ μ΄ WebExtensions 물건μ λͺ¨λ₯΄μ§λ§, κ·Έκ²μ νμ€μΈ κ² κ°λ€...?
μμ±μ λΈλ‘κ·Έ κ²μλ¬Όμ
μ΄ νκ·κ° μꡬμ μΈ κ²μ΄ νμ€ν©λκΉ?
μ΄ νκ·κ° μꡬμ μΈ κ²μ΄ νμ€ν©λκΉ?
μλ§λ. μ λͺ¨λ₯΄κ² μ΄. μ μ ν μλλ°μ€λ₯Ό λ§λ€ μ μλ€λ©΄ <strong i="7">@grant</strong> none
λΌμΈ μλμλ μ΄λ¬ν λ¬Έμ κ° μμ κ²μ
λλ€. κ·Έλ¬λ μΌλΆ κΆν μλ APIκ° νμν κ²½μ° μ΄λ¬ν λ¨κ³κ° νμν μ μμ΅λλ€. 곡μ μ€μ λ‘ Mozillaμ μ½νΈμ μμ΅λλ€.
FTR λ΄ μ€ν¬λ¦½νΈλ <strong i="5">@grant</strong> none
μ€ν¬λ¦½νΈμ
λλ€.
νλ‘μ νΈ λ¦¬λκ° μ΄ ν°μΌμ λ«κ±°λ λ«μ§ μλλ‘ ν©λλ€.
μ μνκ² μ΅λλ€.
μ΄κ²μ μλλ κ²μ΄ μλλ―λ‘ μꡬμ μΌ κ²μΌλ‘ κΈ°λν΄μλ μ λ©λλ€. 루νΈλ‘ λ¬Έμλ₯Ό κΈ°λ°μΌλ‘ λΉμ λ κ²½λ‘λ₯Ό μμ ν ν΄κ²°ν μ μμ΅λλ€.
μ¬λ°λ₯Έ κΈ°λ³Έ URLμ document.baseURI
( <base href="...">
)μ
λλ€.
jQuery AJAXλ κ²½λ‘ URLμμλ§ μλνμ§ μλλ€λ κ²μ νμΈν μ μμ΅λλ€.
Firefox 57, μ΅μ Greasemonkey.
$.ajax({
url: '/some/path',
success: () => {}
});
λ΄ AJAXλ μ΄μ Firefox(WebExtensions μ΄μ )μμ μλν©λλ€.
μμ μμ μ¬νμ μ λ² ν λ²μ μΌλ‘ ν¨ν€μ§λμμ΅λλ€.
https://addons.mozilla.org/firefox/downloads/file/830369/greasemonkey-4.2beta1-an+fx.xpi?src=devhub
ν μ€νΈ λ° νμΈμ ν΄μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€!