Yep, the way your code is set it every time you click the browser action the content script will be injected into the page. If this is not your desired behavior, you can address it by either changing your script injection logic or changing the script itself.
Tracking script injection
In order to prevent repeat injections, you will need to add additional logic to track whether the script has been injected into a given tab. To do this, you would need to track both when your scripts are injected and when the tab's content changes in order to know when to re-inject. For your purposes at the moment this is probably more work than necessary.
Modify the content script
A more direct approach is to tweak your content script so that it will quit early if it has already run. Here's a very simple before and after example.
content.js before
console.log("Content script has run!");
content.js after
if (typeof contentjsRan !== "undefined") {
console.log("Content script has run!");
}
var contentjsRan = true;