Conditionally open url in new tab - javascript

I have a page that currently redirects if a check box is selected and then a "submit" button clicked:
if request.Form("myCheckbox") = "on" then
response.Redirect("/newPage.asp?txt="staff"")
else
response.Redirect("/thisPage.asp")
end if
If the check box is selected, I'd like it to open in a new tab.
I gather from similar questions on here that this can't be done in HTML and would probably be best achieved with Javascript but am unclear as to how to proceed beyond the following:
function sendForm(action){
if (document.getElementById('myCheckbox').checked) {
window.open('/newPage.asp?txt="staff"', '_blank')
}
}
I know it's wrong as it stays on the same page but that's as far I've managed.
Can someone tell me what I'm doing wrong?

As you've found out, a new tab/window cannot be opened from the server using Classic ASP.
Your 'window.open' line is correct and should fire so I assume the problem is with the function and/or the ID of your checkbox.
See my JSFiddle for a working example, or below for the code.
document.getElementById('yourForm').addEventListener("submit", function(e) {
if (document.getElementById('myCheckbox').checked) {
window.open('http://www.jsfiddle.net', '_blank');
}
e.preventDefault();
});

Related

href is not working with onclick in anchor tag in View

I have searched a lot and there are similar questions. One question had the exact thing I did below in code but nothing seems to work for me.
I am trying to send email using href in <a> tag.
It works but then it shows alert asking the user if they want to stay on page or leave.
To avoid this I used a flag mailtoLinkClicked = false
If the user clicks the link and onbeforeunload event is fired then the flag will be set back to false and the user will not be asked to Leave or Stay?
Tried multiple other workarounds but either the email is not sent at all and or the user gets the alert popup every time. Please help me out. I am stuck at this for 4 days now.
Here is the code
MyWindow.cshtml
//This view opens in a new window through window.open()
//some code
#CommonModals.ShowEmailModal()
//some code
CommonModals.cshtml
//This view has the email link in anchor tag. This method ShowEmailModal() is invoked in MyWindow.cshtml
#helper ShowEmailModal()
{
<p>Contact <a tabindex=0 href='#EmailID1' onclick='mailtoLinkClicked = true;'>EmailID1</a></p>
<p>Contact <a tabindex=0 href='#EmailID2' onclick='mailtoLinkClicked = true;'>EmailID2</a></p>
}
JS
#section scripts
{
<script type=text/javascript" charset="utf-8">
mailtoLinkClicked = true;
$(window).on("beforeunload", function () {
mailtoLinkClicked = false;
return; //returning without asking the user if they want to leave
}
if (some condition) {
return "Unsaved changes! You want to leave?";
}
</script>
}

how to prevent window back button and close tab with javascript

now im doing laravel project. i want to implement javascript code only for preventing the back button and close tab window. i read the article that we can use onbeforeunload(). but this code not suitable with me. because the warning message will display when i want to go to another link menu on my site..
here is my code
window.onbeforeunload = function() {
return "Do you really want to leave?";
};
above code still have problem to me :
i must click at list 1 time on the side. then click close tab, so the pop up will display. if i dont click, the pop up not display and directly close the tab.
im using opera browser but the custom message not display same as what i type. it display "Changes you made may not be saved.". How do i could display the sentence as same as i type?
is there any other code that just prevent only for back button and close the tab? so went i want to navigate to other link menu on my site, the warning message not display.
please help
//you should $event.return = "";
window.addEventListener("beforeunload", function ($event) {
return $event.returnValue = "";
})

How can I prevent the JavaScript Prompt Leaving site From Appearing

Hey guys I am trying my best to figure it out how to remove the Javascript prompt/confirm that says "Do you want to leave this site?" like this:
https://prnt.sc/famast
Basically what's happening here is that when a modal got opened and the user click on "YES" it will redirect to a page. But I don't want the JavaScript confirmation but just redirect it to that page.
Any idea if you know some scripts that could make it happen?
Please help!
As other said above me, you can do it with onbeforeunload:
window.onbeforeunload = function() {
return '';
// The browser shows a pre-defined message so you don't have to write your own
}
You can also use addEventListener, in this way:
window.addEventListener('beforeunload', function() {
return '';
});
See an example (Link updated)

Warning when clicking external links and how to add it to a link class

I'm not sure how to do a pop-up that warns when you are clicking on external links, using javascript.
I figured that it would be handy to put a class on my external links as well, but I'm not quite sure it's done correct as it is now either. This is the HTML I'm using at the moment:
<div id="commercial-container">
<img src="picture1.jpg" />
<img src="pciture2.jpg" />
<img src="picture3.jpg" />
<img src="picture4" />
</div>
I'm very new to javascript and very unsure on how to solve my problems. The pretty much only thing I figured out so far is that I will have to use window.onbeforeload but I have no clue on how to figure out how to write the function I need.
I want to keep my javascript in a separated .js document instead of in the HTML as well.
Call the confirm() function from the onClick attribute. This function returns true if the user clicks OK, which will open the link, otherwise it will return false.
<img src="picture1.jpg"/>
Hope this helps.
You can do it by adding a click event handler to each link. This saves having to use a classname.
window.onunload will run even if the user is just trying to close your site, which you may not want.
staying in site
going external
<script>
var a = document.getElementsByTagName('a');
var b = a.length;
while(b--){
a[b].onclick = function(){
if(this.href.indexOf('yourwebsitedomain.com')<0){
//They have clicked an external domain
alert('going external');
}
else{
alert('staying in your site');
}
};
}
</script>
Since you're new to Javascript I advice you to use a javascript framework to do all the "heavy work" for you.
For example with JQuery you can easily bind an onClick event to all external links by doing:
$(".external").click(function(event) {
var confirmation = confirmation("Are you sure you want to leave ?");
if (!confirmation) {
// prevents the default event for the click
// which means that in this case it won't follow the link
event.preventDefault();
}
});
This way every time a user clicks on a link with the external class, a popup message box asking for a confirmation to leave will be prompt to the user and it will only follow the link if the user says "yes".
In case you want only to notify without taking any actions you can replace the confirmation by a simple alert call:
$(".external").click(function(event) {
alert("You are leaving the site");
});
If the user click an image,div,.. you need to look for the parent node. !There could be several elements wrapped with a-tag.
document.addEventListener('click',function(event){
var eT=(event.target||event.srcElement);
if((eT.tagName.toLowerCase()==='a' && eT.href.indexOf('<mydomain>')<0)
|| (eT.parentNode!==null && eT.parentNode.tagName.toLowerCase()==='a'
&& eT.parentNode.href.indexOf('<mydomay>')<0))
{
//do someting
}
else if(eT...){
...
}
},false);
Two side notes:
If you want to keep track a user by cookie or something similar, it's good practice to check external links, set a timeout and make a synchronic get request to renew.
It's better to add the event to the document or a div containing all events and decide on target.

Yes/No box in Javascript like this one here in StackOverflow?

I want to know how can I display a confirmation box when the users try to get out of the page, like this one here in StackOverflow when you try to close the "Ask Question" page.
Thanks you in advance.
Actually, all that is necessary is this:
window.onbeforeunload = function(){ return "You should save your stuff."; }
This is also kind of a dupe of this: How to show the "Are you sure you want to navigate away from this page?" when changes committed?
In javascript, attach a function to window.onbeforeunload, like so:
window.unbeforeunload = function (e)
{
// return (prompt ('Are you sure you want to exit?'));
// EDIT: Amended version below:
var e = e || window.event;
if (e) e.returnValue = 'Your exit prompt';
return 'Your exit prompt';
}
EDIT:
As the comments below indicate, I had misunderstood the working of the event. It should now work as intended.
Ref: window.onbeforeunload (MDC)
probably a dupe: How do you prevent a webpage from navigating away in JavaScript?, but you can do this by adding an delegate to the window.onbeforeunload event
<script type="text/javascript">
window.onbeforeunload = function() {
//will show a dialog asking the user if
//they want to navigate away from the current page
// ok will cause the navigation to continue,
// cancel will cause the user to remain on the current page
return "Use this text to direct the user to take action.";
}
</script>
Update: doh! updated code to do what the OP really wanted :D
You want to catch the onbeforeunload event of window. Then if you return a string, the browser will display your message in a prompt. Here's an article with sample code.
You can use the window.onbeforeunload event to catch this. If there is any value inside the textarea then an alert message is shown.
That's browser based.
As long as you implement <form> tag, and you type in something in the form, and in Google Chrome, it will prompt you that message.

Categories

Resources