mozilla

Compare Revisions

page-mod

Change Revisions

Revision 615555:

Revision 615555 by wbamberg on

Revision 615567:

Revision 615567 by wbamberg on

Title:
page-mod
page-mod
Slug:
Mozilla/Add-ons/SDK/High-Level_APIs/page-mod
Mozilla/Add-ons/SDK/High-Level_APIs/page-mod
Content:

Revision 615555
Revision 615567
nn278    <h3>
279      Cleaning up on add-on removal
280    </h3>
281    <div class="geckoVersionNote">
282      <p>
283        This feature is new in Firefox 30.
284      </p>
285    </div>
286    <p>
287      Content scripts receive a <code>detach</code> message when 
 >the add-on that attached them is disabled or removed: you can use
 > this in the content script to undo any changes that you've made.
 > For example, here's an add-on that attaches a script to every pa
 >ge the user loads:
288    </p>
289    <pre class="brush: js">
290var data = require("sdk/self").data;
291var pageMod = require("sdk/page-mod");
292 
293pageMod.PageMod({
294  include: "*",
295  contentScriptFile: data.url("eaten.js")
296});
297</pre>
298    <p>
299      The content script replaces the page contents, but restores
 > the original contents when it receives <code>detach</code>:
300    </p>
301    <pre class="brush: js">
302// eaten.js
303 
304var oldInnerHTML = window.document.body.innerHTML;
305 
306window.document.body.innerHTML = "eaten!";
307 
308self.port.on("detach", function() {
309  window.document.body.innerHTML = oldInnerHTML;
310});
311</pre>
312    <p>
313      Try running the add-on, loading some pages, and then disabl
 >ing the add-on in the Add-ons Manager. Note that this is a very n
 >aive implementation, created only for demonstration purposes, and
 > will not work properly in many real-world cases.
314    </p>
t287    <div class="note">t
288      <p>
289        This example uses the <a href="https://developer.mozilla.
>org/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action">action but 
>ton</a> API, which is only available from Firefox 29 onwards. 
290      </p>
291    </div>

Back to History