Safari Not Sending Requests During The Onclick Event Due To New Page Load?
Jul 7, 2010
I have a site which displays a selection of advert listings. We log the number of clicks each advert receives via ajax requests.The listings link to both internal pages on our site and external pages, hence the ajax - we cannot log the'clicks' by logging the requests on the destination pages as these are not all on our site for us to log. Also, I don't want to potentially get false positives e.g.from bookmarked pages - hence I am logging the actual clicks, not the requests on the destination.
All is OK in most browsers, but there is a problem with Safari (I am running Safari 4.0 on Windows XP running in Virtualbox OSE) but only where the destination is to open in the same window/tab (some listings go to a new window, some don't). I am logging clicks via an ajax request in the onclick event, which is working fine when the listing is to open in a new window, but it appears that when a new window is not to be opened, the ajax never gets sent.A have constructed the following minimal test case:
index.html
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" [code].....
Note the line commented '****' in index.html which cancels the action of the link. When this is not commented out, the ajax request is sent correctly. Without it (the desired situation) the ajax request never gets sent. Its as if Safari saves up the ajax requests to do later, but never sends them as the new page cancels all such 'saved up' actions.I am using the Safari web developer tools, but I have also checked this test case by checking the Apache logs. Note that as a test case I don't pretend that it will work in IE, but it should work in standards compliant browsers and has been tested on Firefox 3.6.6 and Opera 10.6. The Apache logs show that logger.txt is being requested, unless it is already in the browser cache.Possible workarounds I've considered, but would prefer to avoid:
On the site in question the only such links that currently open in the same window are internal, so I do have the option of logging safari clicks by logging these requests as opposed to clicks and checking the http referer on the server side. As this is not a very flexible solution as it relies on these specific circumstances, also relies on all other links successfully making a new window, and furthermore relying on http referer could result in false negatives I'd rather find a solution within the javascript.I haven't checked whether an asynchonous request would work, but I don't wish to do this anyway just in case there is ever a server problem that prevents the response coming back (note that for these purposes the response is actually superfluous - we are sending the server a message but don't need anything back). I also want to avoid the delay in sending the user to the destination - there is no point having to wait for a response we don't need.Lastly, and my prefered workaround unless I can find anything better, is to make Safari (only) open all links in a new window anyway.
View 1 Replies
ADVERTISEMENT
Feb 14, 2006
Say I wrote an ajax script to send out HTTP requests via ajax. Any
cookies that I have associated with that site will be sent along with
this HTTP request. Is there a way to prevent this from happening? I
tried the following to no avail:
http.setRequestHeader('Cookie','');
View 13 Replies
View Related
Sep 15, 2009
I have written a PHP script for a secure client login system and it is working on Firefox and Chrome. But it doesn't work on Safari and IE. I have noticed that some of the javascript functions do not work at all while a few of them work.I am pasting the part of my code that does't work up here:
<script type="text/javascript">
function newdir(i)
{
[code]....
When I click on the create folder button (newdir.png), I don't see the alert message that I gave for debugging. I have the SAME problem with 2 more buttons on the same page.
View 8 Replies
View Related
Mar 18, 2009
I need to send 15 requests to my server and get results, these results are queries to other sites. I then update my page with the results. I need to know if I am taking the correct approach, as things are working a bit slow, and i.e., seems the be as slow as a snail.
Here is my function for the first request
Code:
function one(){
var xmlHttpa=null;
try{
xmlHttpa=new XMLHttpRequest();
} catch (e){
try {
xmlHttpa=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e){
try {
xmlHttpa=new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("Your browser does not support AJAX!");
return false;
}}}
xmlHttpa.onreadystatechange=function(){
if(xmlHttpa.readyState==4){
document.getElementById('resulta').innerHTML = xmlHttpa.responseText;
var el = document.getElementById('showMessagea');
el.parentNode.removeChild(el);
applystyle();
}}
xmlHttpa.open("GET","one.php",true);
xmlHttpa.send(null);
}
I then call this function and others from my page, one(); two(); etc. Am I correct in my approach?
View 1 Replies
View Related
May 14, 2009
I've spend about 2 days writing this javascript code and it works great in IE only to find out that it does nothing in Safari/FF.
Here is my code:
<script type="text/javascript">function calculate() {
var thetotal = 0;
var silver = 0;
var gold = 0;
[Code]....
Basicly what the script does is using some variables in my form will calculate a total price in real time when you click the "Calculate" button. Works great in IE, but in Firefox/Safari it won't do a thing..
View 8 Replies
View Related
Aug 25, 2011
I want to load an image with JS within the form event "onsubmit" without stipping the submit action of the form.
What I do is the following:
var img = new Image();
img.onload = function(){
myfunction();
};
[Code]....
This logic is a MUST for me, I mean I don't want to use settimeout to postpone the form submit, and I have to call the URL_FOR_PHP_SCRIPT_TO_DO_SOME_LOGIC this way since this code is on a JS file from different domain. This logic works fine on all browsers, and the request to call the image is sent -which is what exactly I need-, however on safari it doesn't call the image request, and start posting the form directly. I tried to add an "onunload" event on the page containing the form when the browsers is safari, but this didn't help too, and the form still submitting data directly without starting sending the request to load the image.
View 1 Replies
View Related
May 31, 2007
I thought I had this licked. How do I load a file with an onclick AND replace the current page with another page?
<span return true">
<img border="0" src="../img/ok.gif" width="30" height="30"></span>
View 6 Replies
View Related
Nov 4, 2009
I have a form with 2 button elements in it. Button elements are usedbecause they are much easier to style as needed.
<form id="testform" method="post" name="testform">
<input type="text" value="" name="firstname" id="firstname"/>
<button class="button ci_btn_shdw" value="Save As New " name="_event
[code]...
I am using the jquery form plugin submit the form by ajax. Everything works great in all browsersexcept for Safari and Chrome. The problem in Safari and Chrome isthat the name of the button that was pressed does not get sent back.My guess is that the form plugin is getting confused by the spaninside the button and not grabbing the name from the button element.
View 1 Replies
View Related
Jul 20, 2005
I am very new to JS and trying to use a button to move on to a new html page
rather than a text link. The code I have is as follows; (having tried to wrap the button in a HREF)
<A HREF="index.htm">
<input type='button'
id='Button2'
name='Button2'
style='width:146px;height:46px;border:1px#000000
solid;background-color:#FFFF99;color:#000033;font-family:Verdana;font-size:1
0pt;'
value='INDEX'
onClick='return true;'[color=blue]
>[/color]
</input>
</A>
This does not work not sure why, I originally tried calling a js function
jsLoad() to load a new page but don't quite know how to do this?
<SCRIPT LANGUAGE=javascript>
<!--
function jsLoad()
{
don't know what to put here !!!!!
}
//-->
</SCRIPT>
View 2 Replies
View Related
Sep 22, 2009
I am trying to use an onclick statement to go to an alternate web page displaying a different version of tha file being displayed in the current page.
In the HEAD section of the current page I have a global variable named currentfile that contains a file name. This function is also in the HEAD section immediately below the variable's declaration
I have tried every combination I can think of in the onclick code to get it to work but, no joy. here is an example:
I just can't get the next page to load.
View 15 Replies
View Related
Aug 10, 2004
My problem is with the onClick event. If I preface the event with a call to the function (as per the code snippet below); and the function returns a true, then the window.location doesn't execute (the same as if the function returns a false).
If I preface the onClick event with the window.location, i.e.
onClick="window.location='devSimpleForm.asp?cmdAction=ptoTest&employee=' + document.form1.employee.value"; return empSelected(this) >
the function call is still executed, but, even with a False, the new page (devSimpleForm.asp) still loads & runs.
I already have a 'submit' button used to open a different page, so I seem to be stuck with the onClick event handler.
Can anyone help so that a 'false' won't load/run the next page, and a 'true' will? :confused:
function empSelected(objForm) {
if (form1.employee.value == "") {
alert("You must choose an employee!")
form1.employee.focus()
return false
}
alert("We're being returned with TRUE")
return true
}//-----------------------------
<input type="button" name="test" value="Simple Form"
onMouseover="window.status='Click for test' return true"
onMouseOut="window.status=' ' return true"
onClick="return empSelected(this); window.location='devSimpleForm.asp?cmdAction=ptoTest&employee=' + document.form1.employee.value" >
View 2 Replies
View Related
Sep 7, 2009
I have a site which loads a couple of Jquery animations on a page load. What I cant figure out is how to play a .fadeOut animation on the content when a link is clicked and before the new page is loaded.
View 4 Replies
View Related
Sep 6, 2010
Alright, so I'm working on a script, and I'm simply using the following code:
document.getElementById("element").onclick = alert("hello");
When I load the page, the alert fires instantaneously. I'm completely stumped. I've checked everything in my not too extensive Javascript file, and it looks fine. What common errors could cause this?
View 5 Replies
View Related
Dec 13, 2010
I'm loading an html page into an iframe from an onclick event. The procedure is to put a number into a textfield and then click a button that loads a separate file into the iframe. The number is used as a url parameter to grab certain info from mysql (locations.php?sku= the number ).On first click the page loads in the iframe with no info at all, then if I reload the page by way of the reload button in browser and then click the button a second time, it works. If I change the number and click the button nothing changes until I reload and click the button again. This is the code I'm working with---
Code:
<script type="text/javascript">
url = document.regionbar.sku.value;
function doClick() {[code]......
View 2 Replies
View Related
Sep 11, 2009
I have a html page with a lot of thumbnails. The idea is that when the user clicks on an image the onClick event is to display another detailed form and deliver to that form the name of the image in a variable. In the detailed php-form there is a query to MySQL to retrieve a record. The record will be retrieved by a Query based on the name of the picture. Apparently the PHP cannot do the job. I had an idea to make the thumbnail page as a form and to use use a hidden field with the thummnail name which should be carried on with the $_POST array through the submit button but i do not want to have a submit button. The more elegant way is just by clicking the picture the detailed page is opened and the variable is transferred where my php code can make use of the variable for the query. I have never used java before so you have to excuse for the lack of knowledge.
View 3 Replies
View Related
Jul 22, 2009
Here's my page.
[url]
I'm having 3 small issues with the page as it is.
First, I'd like to hide the Google Player until an onclick event actually occurs.
Second, at the moment, there's only an onclick for the image maps over the tracks list, and no href, which means the cursor never changes to the finger cursor, letting folks know there's a link there.
Last, when you click on a link, I'd like to the page to move its focus back to the top of the page (not reload, obviously). Instead, it just stays where you are, and the user has to manually scroll to see the full album art graphic.
Here are the relevant parts of the code:
Code:
Code:
Code:
View 14 Replies
View Related
Feb 27, 2010
Is there a way to add event click on link created by dom after load page ?
View 2 Replies
View Related
Nov 13, 2007
I understand that when loading a page, the html parser is suspended until any script that it comes across is executed. i also believe that certain browsers will allow user input for those parts rendered whilst the rest of the page is still being parsed. suppose that a user clicks a button that is visible and 'active' and fires off some lengthy javascript execution causing the ui to 'freeze' for a while. my question is, on a page that is still being parsed but allows user input on those parts parsed and rendered, will the parsing of the rest of the page cease whilst the event handler (onclick) is working or will the user see the page render simultaneously as the event handler does its job?
View 7 Replies
View Related
Jan 25, 2011
I have this onchange event that occurs after user selection of a dropdown menu. When a user makes a selection it queries the database and delivers some data.
The value of the dropdown is stored in a database, but the problem is when the page is refreshed the delivered data disapears, only reappearing if you change the dropdown.
How can I make the onchange event run when the page loads so that if there is already a selection, the database data will always be there, only to change if the user changes the selection?
Here is the JS:
<script type="text/javascript">
function showCustomer(str)
{var xmlhttp;
[Code].....
View 14 Replies
View Related
Jul 2, 2010
I have a registration form which is processed by using javascript and php. First I show registration.php and data from it is sended with ajax to registration_process.php
<form id="registration">
Name<input type="name" id="name" />
Password<input type="password" id="password" />
</form>
[Code]....
The problem is that is probably not secure way. Is any way to encrypt value of input? For example something like this var name=$('#name').encrypt().val();
View 3 Replies
View Related
Aug 1, 2009
I bind a custom event on page A,then ajax load page B。In page Bthereis a <a> link which trigger the custom event.Problem is :the trigger function work when i place the trigger
function in page A ,but not work in B by ajax load.
View 1 Replies
View Related
Oct 10, 2011
I have a simple button in my HTML. I also have a function in my external JavaScript file. This function calls an alert box with some text. Now, I also have a global variable in my JavaScript that gets the button by id, then assigns the onclick event handler to it which in turn is assigned the call to my alert box function. Simple right?
Problem: The alert box shows up when the page loads as well as when the button is clicked. This is not desirable. code...
View 14 Replies
View Related
Jun 2, 2009
I'm looking for a jQuery plugin, which could create a flyout of a container from left or right side of a page on some event (onClick or onMouseOver).
The example can be found at [URL] when the page loads some shopping ads slide from the left side of the browser screen (it's shown automatically only once, to see it again you need to delete this website cookies and reload the page - it would be great if the plugin had this cookie-based feature).
View 2 Replies
View Related
Jul 20, 2005
I have a need for a page to pop up a user/password dialogue
when it loads and for the user/password that they enter to be sent to
be logged somewhere on the server. The underlying page then loads as
normal. Does anyone have an idea about how I might do this?
View 3 Replies
View Related
Jan 12, 2009
I have this function among many that houses forms. I'm also using an ajax page that is supposed to deal with form's entries and insert everything into my DB and I don't know how to separate the different requests on the ajax page so that it can do what the correct request is.
[Code]...
View 1 Replies
View Related
Dec 31, 2011
I'm using the following code to attach a method to the click event of my button. It definitely works, but unfortunately the click event happens on page load even though no one has actually clicked on the button. How do I prevent this? $('#btn').bind('click',etCategories());
View 4 Replies
View Related