Need workaround for calling alert() from background script
Calling alert() from the background script is allowed in Google's Chrome, but not in Firefox (WebExtensions) which I am porting my Chrome extension to.
So, I need a workaround to get an alert dialog up. I'm not asking for anything else other than THE alert dialog.
Sending a message to a content script to call alert() will not suffice since no content scripts may be loaded at the time the alert call is needed.
firefox-webextensions
|
show 2 more comments
Calling alert() from the background script is allowed in Google's Chrome, but not in Firefox (WebExtensions) which I am porting my Chrome extension to.
So, I need a workaround to get an alert dialog up. I'm not asking for anything else other than THE alert dialog.
Sending a message to a content script to call alert() will not suffice since no content scripts may be loaded at the time the alert call is needed.
firefox-webextensions
The way that you have worded this it sounds like you will accept no solution other than the actualalert()
dialog, not even something that looks and feels like it. If so, then you are SOL. The text which is output in the console "alert() is not supported in background windows; please use console.log instead." is clear.alert()
is not supported in background scripts. If you want more information, you might check Bug 1203394 - alert() does not work in background scripts which is RESOLVED FIXED with this console output as the result.
– Makyen
Aug 15 '16 at 14:26
To be clear: Will you accept a substitute which works in both Firefox and Google Chrome which comes close to looking and acting like analert()
?
– Makyen
Aug 15 '16 at 14:28
Also to be clear: it is not acceptable to you to have as a solution that a content script be loaded to accomplish thealert()
. This is not saying send a message to an already loaded content script, but actually loading one specifically to handle this issue. This is not an acceptable solution to you, correct?
– Makyen
Aug 15 '16 at 14:32
@Makyen Give it a shot.
– AlJo
Aug 15 '16 at 16:44
1
@Makyen, you're making rash unimaginative assumptions. If you can't answer the question as stated, don't let that bother you; just move along.
– AlJo
Aug 16 '16 at 2:52
|
show 2 more comments
Calling alert() from the background script is allowed in Google's Chrome, but not in Firefox (WebExtensions) which I am porting my Chrome extension to.
So, I need a workaround to get an alert dialog up. I'm not asking for anything else other than THE alert dialog.
Sending a message to a content script to call alert() will not suffice since no content scripts may be loaded at the time the alert call is needed.
firefox-webextensions
Calling alert() from the background script is allowed in Google's Chrome, but not in Firefox (WebExtensions) which I am porting my Chrome extension to.
So, I need a workaround to get an alert dialog up. I'm not asking for anything else other than THE alert dialog.
Sending a message to a content script to call alert() will not suffice since no content scripts may be loaded at the time the alert call is needed.
firefox-webextensions
firefox-webextensions
asked Aug 15 '16 at 6:30
AlJo
619
619
The way that you have worded this it sounds like you will accept no solution other than the actualalert()
dialog, not even something that looks and feels like it. If so, then you are SOL. The text which is output in the console "alert() is not supported in background windows; please use console.log instead." is clear.alert()
is not supported in background scripts. If you want more information, you might check Bug 1203394 - alert() does not work in background scripts which is RESOLVED FIXED with this console output as the result.
– Makyen
Aug 15 '16 at 14:26
To be clear: Will you accept a substitute which works in both Firefox and Google Chrome which comes close to looking and acting like analert()
?
– Makyen
Aug 15 '16 at 14:28
Also to be clear: it is not acceptable to you to have as a solution that a content script be loaded to accomplish thealert()
. This is not saying send a message to an already loaded content script, but actually loading one specifically to handle this issue. This is not an acceptable solution to you, correct?
– Makyen
Aug 15 '16 at 14:32
@Makyen Give it a shot.
– AlJo
Aug 15 '16 at 16:44
1
@Makyen, you're making rash unimaginative assumptions. If you can't answer the question as stated, don't let that bother you; just move along.
– AlJo
Aug 16 '16 at 2:52
|
show 2 more comments
The way that you have worded this it sounds like you will accept no solution other than the actualalert()
dialog, not even something that looks and feels like it. If so, then you are SOL. The text which is output in the console "alert() is not supported in background windows; please use console.log instead." is clear.alert()
is not supported in background scripts. If you want more information, you might check Bug 1203394 - alert() does not work in background scripts which is RESOLVED FIXED with this console output as the result.
– Makyen
Aug 15 '16 at 14:26
To be clear: Will you accept a substitute which works in both Firefox and Google Chrome which comes close to looking and acting like analert()
?
– Makyen
Aug 15 '16 at 14:28
Also to be clear: it is not acceptable to you to have as a solution that a content script be loaded to accomplish thealert()
. This is not saying send a message to an already loaded content script, but actually loading one specifically to handle this issue. This is not an acceptable solution to you, correct?
– Makyen
Aug 15 '16 at 14:32
@Makyen Give it a shot.
– AlJo
Aug 15 '16 at 16:44
1
@Makyen, you're making rash unimaginative assumptions. If you can't answer the question as stated, don't let that bother you; just move along.
– AlJo
Aug 16 '16 at 2:52
The way that you have worded this it sounds like you will accept no solution other than the actual
alert()
dialog, not even something that looks and feels like it. If so, then you are SOL. The text which is output in the console "alert() is not supported in background windows; please use console.log instead." is clear. alert()
is not supported in background scripts. If you want more information, you might check Bug 1203394 - alert() does not work in background scripts which is RESOLVED FIXED with this console output as the result.– Makyen
Aug 15 '16 at 14:26
The way that you have worded this it sounds like you will accept no solution other than the actual
alert()
dialog, not even something that looks and feels like it. If so, then you are SOL. The text which is output in the console "alert() is not supported in background windows; please use console.log instead." is clear. alert()
is not supported in background scripts. If you want more information, you might check Bug 1203394 - alert() does not work in background scripts which is RESOLVED FIXED with this console output as the result.– Makyen
Aug 15 '16 at 14:26
To be clear: Will you accept a substitute which works in both Firefox and Google Chrome which comes close to looking and acting like an
alert()
?– Makyen
Aug 15 '16 at 14:28
To be clear: Will you accept a substitute which works in both Firefox and Google Chrome which comes close to looking and acting like an
alert()
?– Makyen
Aug 15 '16 at 14:28
Also to be clear: it is not acceptable to you to have as a solution that a content script be loaded to accomplish the
alert()
. This is not saying send a message to an already loaded content script, but actually loading one specifically to handle this issue. This is not an acceptable solution to you, correct?– Makyen
Aug 15 '16 at 14:32
Also to be clear: it is not acceptable to you to have as a solution that a content script be loaded to accomplish the
alert()
. This is not saying send a message to an already loaded content script, but actually loading one specifically to handle this issue. This is not an acceptable solution to you, correct?– Makyen
Aug 15 '16 at 14:32
@Makyen Give it a shot.
– AlJo
Aug 15 '16 at 16:44
@Makyen Give it a shot.
– AlJo
Aug 15 '16 at 16:44
1
1
@Makyen, you're making rash unimaginative assumptions. If you can't answer the question as stated, don't let that bother you; just move along.
– AlJo
Aug 16 '16 at 2:52
@Makyen, you're making rash unimaginative assumptions. If you can't answer the question as stated, don't let that bother you; just move along.
– AlJo
Aug 16 '16 at 2:52
|
show 2 more comments
1 Answer
1
active
oldest
votes
My workaround is to save the alert code in a string like:
var alertWindow = 'alert(message)';
and let the background script inject that code like:
browser.tabs.executeScript({code : alertWindow});
this hack worked, thanks!
– Lunulata
Apr 29 '17 at 5:25
3
This hack does not work, when the active tab is e.g. an "about:" page, new tab and other similar situations, and that's precisely where I need to show an error message and suggestion how to work around the problem. Any other ideas?
– gregko
Oct 12 '17 at 18:29
Note that you need host permissions to inject into the current page. Thankfully, most of the timeactiveTab
permission is sufficient. gregko's use case needs more work, however. An option would be to open a visible extension page for this in case the injection fails; clunky for sure.
– Xan
Nov 14 '18 at 13:25
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f38950281%2fneed-workaround-for-calling-alert-from-background-script%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
My workaround is to save the alert code in a string like:
var alertWindow = 'alert(message)';
and let the background script inject that code like:
browser.tabs.executeScript({code : alertWindow});
this hack worked, thanks!
– Lunulata
Apr 29 '17 at 5:25
3
This hack does not work, when the active tab is e.g. an "about:" page, new tab and other similar situations, and that's precisely where I need to show an error message and suggestion how to work around the problem. Any other ideas?
– gregko
Oct 12 '17 at 18:29
Note that you need host permissions to inject into the current page. Thankfully, most of the timeactiveTab
permission is sufficient. gregko's use case needs more work, however. An option would be to open a visible extension page for this in case the injection fails; clunky for sure.
– Xan
Nov 14 '18 at 13:25
add a comment |
My workaround is to save the alert code in a string like:
var alertWindow = 'alert(message)';
and let the background script inject that code like:
browser.tabs.executeScript({code : alertWindow});
this hack worked, thanks!
– Lunulata
Apr 29 '17 at 5:25
3
This hack does not work, when the active tab is e.g. an "about:" page, new tab and other similar situations, and that's precisely where I need to show an error message and suggestion how to work around the problem. Any other ideas?
– gregko
Oct 12 '17 at 18:29
Note that you need host permissions to inject into the current page. Thankfully, most of the timeactiveTab
permission is sufficient. gregko's use case needs more work, however. An option would be to open a visible extension page for this in case the injection fails; clunky for sure.
– Xan
Nov 14 '18 at 13:25
add a comment |
My workaround is to save the alert code in a string like:
var alertWindow = 'alert(message)';
and let the background script inject that code like:
browser.tabs.executeScript({code : alertWindow});
My workaround is to save the alert code in a string like:
var alertWindow = 'alert(message)';
and let the background script inject that code like:
browser.tabs.executeScript({code : alertWindow});
edited Jan 9 '17 at 12:09
S.I.
1,87082641
1,87082641
answered Jan 9 '17 at 11:08
GrafZahl
312
312
this hack worked, thanks!
– Lunulata
Apr 29 '17 at 5:25
3
This hack does not work, when the active tab is e.g. an "about:" page, new tab and other similar situations, and that's precisely where I need to show an error message and suggestion how to work around the problem. Any other ideas?
– gregko
Oct 12 '17 at 18:29
Note that you need host permissions to inject into the current page. Thankfully, most of the timeactiveTab
permission is sufficient. gregko's use case needs more work, however. An option would be to open a visible extension page for this in case the injection fails; clunky for sure.
– Xan
Nov 14 '18 at 13:25
add a comment |
this hack worked, thanks!
– Lunulata
Apr 29 '17 at 5:25
3
This hack does not work, when the active tab is e.g. an "about:" page, new tab and other similar situations, and that's precisely where I need to show an error message and suggestion how to work around the problem. Any other ideas?
– gregko
Oct 12 '17 at 18:29
Note that you need host permissions to inject into the current page. Thankfully, most of the timeactiveTab
permission is sufficient. gregko's use case needs more work, however. An option would be to open a visible extension page for this in case the injection fails; clunky for sure.
– Xan
Nov 14 '18 at 13:25
this hack worked, thanks!
– Lunulata
Apr 29 '17 at 5:25
this hack worked, thanks!
– Lunulata
Apr 29 '17 at 5:25
3
3
This hack does not work, when the active tab is e.g. an "about:" page, new tab and other similar situations, and that's precisely where I need to show an error message and suggestion how to work around the problem. Any other ideas?
– gregko
Oct 12 '17 at 18:29
This hack does not work, when the active tab is e.g. an "about:" page, new tab and other similar situations, and that's precisely where I need to show an error message and suggestion how to work around the problem. Any other ideas?
– gregko
Oct 12 '17 at 18:29
Note that you need host permissions to inject into the current page. Thankfully, most of the time
activeTab
permission is sufficient. gregko's use case needs more work, however. An option would be to open a visible extension page for this in case the injection fails; clunky for sure.– Xan
Nov 14 '18 at 13:25
Note that you need host permissions to inject into the current page. Thankfully, most of the time
activeTab
permission is sufficient. gregko's use case needs more work, however. An option would be to open a visible extension page for this in case the injection fails; clunky for sure.– Xan
Nov 14 '18 at 13:25
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f38950281%2fneed-workaround-for-calling-alert-from-background-script%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
The way that you have worded this it sounds like you will accept no solution other than the actual
alert()
dialog, not even something that looks and feels like it. If so, then you are SOL. The text which is output in the console "alert() is not supported in background windows; please use console.log instead." is clear.alert()
is not supported in background scripts. If you want more information, you might check Bug 1203394 - alert() does not work in background scripts which is RESOLVED FIXED with this console output as the result.– Makyen
Aug 15 '16 at 14:26
To be clear: Will you accept a substitute which works in both Firefox and Google Chrome which comes close to looking and acting like an
alert()
?– Makyen
Aug 15 '16 at 14:28
Also to be clear: it is not acceptable to you to have as a solution that a content script be loaded to accomplish the
alert()
. This is not saying send a message to an already loaded content script, but actually loading one specifically to handle this issue. This is not an acceptable solution to you, correct?– Makyen
Aug 15 '16 at 14:32
@Makyen Give it a shot.
– AlJo
Aug 15 '16 at 16:44
1
@Makyen, you're making rash unimaginative assumptions. If you can't answer the question as stated, don't let that bother you; just move along.
– AlJo
Aug 16 '16 at 2:52