chrome scrolling bug

kiro
User ww
User ww
Posts: 33
Joined: Wed Jul 25, 2018 6:44 pm

Re: chrome scrolling bug

Post by kiro »

axew3 wrote: Sun Sep 09, 2018 10:38 pm not missed, there is a not needed bracket more, this is the correct tested code (with domain and js file inclusion ready for your site)

Code: Select all

<script type="text/javascript">
	
document.domain = 'neomundos.net'; // THIS IS MANDATORY! Set/Change this value to your domain (example: axew3.com (or leave localhost if on localhost)) 
 
var w3all_doc_domain = document.domain;
 
  $(document).on("click", "a", function() {
   var href = $(this).attr("href");
  $(this).attr("href", href.replace('iframe=true&', '')); // remove! or get loop in htaccess if our var has been appended before ...
   var w3allappend = href;
   var w3all_parent_element_id = $(this).parent().get( 0 ).id; // detect click x ... (ex: return ID smiley-box, onclick post smiles) ... // detect and avoid/allow certain behaviors
   var w3all_onclick_smile  = (w3all_parent_element_id.indexOf('smiley-box') > -1);
   var w3all_onview_topic  = (href.indexOf('viewtopic.php') > -1);
   var w3all_onview_attach  = (href.indexOf('file.php') > -1);
   var w3all_onview_post = /#p[0-9]+/ig.exec(href);
   var w3all_ck_quickmod  = (href.indexOf('quickmod') > -1);
   var w3all_onreply_topic  = (href.indexOf('mode=reply') > -1);
   var w3all_ck_onindex  = (href.indexOf('index.php') > -1);
   var w3all_onsubmit_post = /^post?/ig.exec(href);
  
var mfs = $(this.window).scrollTop() + 0; // may change to 100, or 200 the 0 value here, to better fit your WP theme on scroll 
    if ( w3all_onclick_smile === false && w3all_onview_attach === false ) {
   if ('parentIFrame' in window) window.parentIFrame.scrollTo(0,mfs);
  }
  if ('parentIFrame' in window) window.parentIFrame.sendMessage(w3allappend);
});
 
///////////////////////////////////////////////////////////////////////////
// w3all Ajax UPDATES for phpBB events
 
if (window.frameElement) { // if in iframe mode ... if phpBB is surfed by full address and not iframe
 
window.onload = function() {
var pmn = "{PRIVATE_MESSAGE_COUNT}";
var w3all_phpbb_u_logged = "{S_USER_LOGGED_IN}";
// to send to wp at once here, like this: #w3all_phpbbpmcount=val#w3all_phpbbnotifycount=val#etc etc etc
var w3appendevents = '#w3all_phpbbpmcount=' + pmn + '#w3all_phpbb_u_logged=' + w3all_phpbb_u_logged;
parent.w3all_ajaxup_from_phpbb(w3appendevents);
}
 
///////////////////////////////////////////////////////////////////////////
// htaccess trick for right click /copy/paste/ links
// to apply htaccess rules and rewrite urls for this and email notification, please read this tutorial:
// https://www.axew3.com/w3/2017/04/wp_w3all-htaccess-javascript-rewrite-links-point-iframe-how-to/
 
// remove starting /* and ending */ 
// that wrap the code here below to activate
 
$( "a" ).contextmenu(function() {
  var href = $(this).attr("href");
  var shortlink = /^#p[0-9]+/ig.exec(href);
	var ck  = (href.indexOf('iframe=true') > -1);
	var ckl = /^(http[s]?:\/\/[-a-z0-9\.]+)/ig.exec(href); // check if link point to external resource: a passed phpBB url (attr("href")) is relative, not absolute: so we assume that if http(s) is present, 
	// than it should be a link that point to an external iframe resource. Can be improved further more using this same pattern result.
	
	 if ( ck == false && ckl == null && shortlink == null ){ // not re-append // not append if short link like #p49 (link of the post on viewtopic) or passed link point to an external resource
	 	  var href0 = href.split('?');
	 	  if(href0[1] == null){ href0[1] = ''; } else { href0[1] = '&' + href0[1]; }
      var href1 = href0[0] + '?iframe=true' + href0[1];
    $(this).attr("href", href1); // send out before mouseup ...
   }
});
$( "a" ).mouseup(function() { // but remove on mouseup, or leaving iframe=true we'll loop with htaccess ...
  var href = $(this).attr("href");
  $(this).attr("href", href.replace('iframe=true&', ''));
});
 
// TO ACTIVATE phpBB lightbox events remove /* and */ here below
// NOTE: Due to last update fix, this should not be more required, as in any other phpBB mod
/* 
$(document).on('mouseup', '.postimage', function(){
 //var w3allappend = "getw3all_lightbox";
 if ('parentIFrame' in window) window.parentIFrame.scrollToOffset(0,0);
 //if ('parentIFrame' in window) window.parentIFrame.sendMessage(w3allappend);
});
*/
 
} // END if (window.frameElement) {
</script>
<script type="text/javascript" src="https://foro.neomundos.net/iframeResizer.contentWindow.min.js" defer></script>
with this code i'm in the first situation :( the urls are correctly displayed but the jumping bug comes back.
User avatar
axew3
w3all User
w3all User
Posts: 2883
Joined: Fri Jan 22, 2016 5:15 pm
Location: Italy
Contact:

Re: chrome scrolling bug

Post by axew3 »

but the jumping bug comes back
to remove the scroll behavior, do this on the added code (that is see at date of this reply is ok):
search for this line:

Code: Select all

 if ('parentIFrame' in window) window.parentIFrame.scrollTo(0,mfs);
change into

Code: Select all

//  if ('parentIFrame' in window) window.parentIFrame.scrollTo(0,mfs);
save and reload template.
The scroll isn't executed now. You mean/want this or what?
kiro
User ww
User ww
Posts: 33
Joined: Wed Jul 25, 2018 6:44 pm

Re: chrome scrolling bug

Post by kiro »

it's close to what i want :) i've recorded a video to show you the problem:

1. this video shows the bug that i told you. everytime you click an element, the page jumps to the top, which is specially annoying when you're on the text editor.

2. this video shows the behaviour right now, after i added the last // code you gave me. now, there is no jumping neither in the links nor the editor, but if i scroll down and click in a forum link, the next page 'remembers' the position and leads me to the bottom of the page. it's good, it's not so annoying, but it's not perfect.

3. and this video is the normal behaviour in my subdomain page (without iframe). when i click in the same forum near the bottom of the page, the page is scrolled to top, and every link leads to the correct position that is supposed to have.
User avatar
axew3
w3all User
w3all User
Posts: 2883
Joined: Fri Jan 22, 2016 5:15 pm
Location: Italy
Contact:

Re: chrome scrolling bug

Post by axew3 »

ok here we go ... with video all is clear and i remember the issue you said.
I said it's necessary to review all the code of this joke, that i'll try to improve for what i can on next release.

so the problem is when you are on phpBB editor writing a post, when you click on bbcode tags buttons, the page scroll to top.
I remember also that i've already answer to this question. I will try again to explain.
The code work fine detecting to not scroll on the default Subsilver theme. The Javascript search for the element that wraps these buttons (also smiles) and avoid to scroll in this case. SInce you're not using the Subsiver theme, something need to be adjusted to work properly.

I need to see the phpBB output code on inserting a post to know IDs and classes to search for.
So setup for me an user account that can insert posts on forum. Send me details via pm here.

I'll try to see these days if would be never possible in some other way to resolve all these scroll problems.
User avatar
axew3
w3all User
w3all User
Posts: 2883
Joined: Fri Jan 22, 2016 5:15 pm
Location: Italy
Contact:

Re: chrome scrolling bug

Post by axew3 »

removed
kiro
User ww
User ww
Posts: 33
Joined: Wed Jul 25, 2018 6:44 pm

Re: chrome scrolling bug

Post by kiro »

axew3 wrote: Wed Sep 12, 2018 10:44 pm last code updated due to wrong copy/paste, now is ok. please remove the previous and copy the edited one here above.
follow what about scroll in px as above explained
i think you missed the code :mrgreen:
Locked