# Call function on page change

**URL:** https://meta.discourse.org/t/call-function-on-page-change/148219
**Category:** Development
**Created:** [April 16, 2020, 9:42am UTC](https://meta.discourse.org/t/call-function-on-page-change/148219 "2020-04-16T09:42:29Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![jordan.vidrine](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan.vidrine/32/515563_2.png) [@jordan.vidrine](https://meta.discourse.org/u/jordan.vidrine)
#### Post date: [April 16, 2020, 1:53pm UTC](https://meta.discourse.org/t/call-function-on-page-change/148219/2 "2020-04-16T13:53:31Z")

</div>

Depending on what you want to do this could be wildly varied, but to call a function, or do something on every page change by the user you could use the plugin API.

Here you can read through a [developers guide to using Discourse theming/components (custom JS etc)](https://meta.discourse.org/t/developer-s-guide-to-discourse-themes/93648).

Here you can find [withPluginApi information.](https://meta.discourse.org/t/a-new-versioned-api-for-client-side-plugins/40051)

This is a simple example of me logging the current URL as well as the page title.

I am doing this in the `common/head_tag.html` file. Which can be edited at `/admin/customize/themes/9/common/head_tag/edit`

```xml
<script type="text/discourse-plugin" version="0.8">
    api.onPageChange((url, title) => {
        console.log(url, title);
    });
</script>

```

---

_[View the full topic](https://meta.discourse.org/t/call-function-on-page-change/148219)._
