With Safari 3.0.4 (latest and greatest, older versions too), entering a search string in Active Search will loop, mysteriously prepending "20" to the search string and immediately reloading the page. Thus: target becomes 20target becomes 2020target becomes... Under Mac Firefox, Windows Firefox and IE this doesn't happen.

Also, just how "Ajax-y" does this make Search? Is it supposed to begin searching after a few seconds delay, like Live Search, or does it just pop up recent similar searches? With all the browsers I've tries (except Safari) it just sits there.

Comments

nedjo’s picture

Thanks for the note. This comes down to a clunky implementation of history support (code that tests the current URL and triggers an action). The module should be reworked to use the jQuery history plugin that's included with Javascript Tools. Or else just retired, as now there are other Drupal AJAX search solutions out there.

The search is executed (by AJAX) when you click the button.

playapus’s picture

nedjo’s picture

Priority: Normal » Critical
Status: Active » Fixed

I haven't been able to resolve the issue in Safari, so instead I've implemented a browser test. Under Safari, users will get the regular (non-AJAX) Drupal search behavior. So, at least, this critical issue is gone.

Anonymous’s picture

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for two weeks with no activity.

fubarthepanda’s picture

The space handling causes the "activesearchMonitor " to submit the form forever since "yourvalue1%20yourvalue2" will never equal "yourvalue1 yourvalue2". There's no doubt a better way to handle this, but if you search and replace the "%20" values in "activesearchMonitor", then you should be able to use this module with Safari. In "activesearch.js", change to:

Drupal.activesearchMonitor = function() {
  if ($('#search-form').size()) {
    local_hash = location.hash.replace(/%20/g, ' ');
    active_hash = Drupal.settings.activesearchCurrentHash.replace(/%20/g, ' ');
    if ((location.hash.substring(0, 5) == '#keys') && (local_hash != '#' + active_hash)) {
      Drupal.settings.activesearchCurrentHash = location.hash.replace('#', '');
      Drupal.activesearchSubmit();
    }
  }
  else {
    clearInterval(Drupal.settings.activesearchIntervalId);
  }
};
extraextraspezial’s picture

The above changes to activesearch.js did not solve the problem for me (drupal 5.15).

plan9’s picture

#5 works for me (after disabling the browser test in the module) for the first page of results, but clicking on 'next' brings back the %20 error.