Jump to content

mentioning multiple people

myselfolli

I've had some issues with the mentioning feature, especially when mentioning multiple people. The typeahead name suggestion box will sometimes disappear (and not re-appear until I reload the page) and sometimes it won't show up at all. Plus I've experienced this (image):

 

image.png.f975e112164a0a13e0eeb460b13c00ab.png

A number of times, with no obvious way to fix it (re-mentioning the second name wouldn't work)...

75% of what I say is sarcastic

 

So is the rest probably

Link to comment
Share on other sites

Link to post
Share on other sites

I've had issues like this before but, they seem to have gone away lately.

 

When it does freak out, deleting the name and the @ usually fixes it. 

Make sure to quote or tag people, so they get notified.

Link to comment
Share on other sites

Link to post
Share on other sites

32 minutes ago, Cyberspirit said:

I've had issues like this before but, they seem to have gone away lately.

 

When it does freak out, deleting the name and the @ usually fixes it. 

I tried that too and it sometimes works, but not reliably

75% of what I say is sarcastic

 

So is the rest probably

Link to comment
Share on other sites

Link to post
Share on other sites

it stops working after you tag enough people too last time i tried, try switching to dark theme ?

I spent $2500 on building my PC and all i do with it is play no games atm & watch anime at 1080p(finally) watch YT and write essays...  nothing, it just sits there collecting dust...

Builds:

The Toaster Project! Northern Bee!

 

The original LAN PC build log! (Old, dead and replaced by The Toaster Project & 5.0)

Spoiler

"Here is some advice that might have gotten lost somewhere along the way in your life. 

 

#1. Treat others as you would like to be treated.

#2. It's best to keep your mouth shut; and appear to be stupid, rather than open it and remove all doubt.

#3. There is nothing "wrong" with being wrong. Learning from a mistake can be more valuable than not making one in the first place.

 

Follow these simple rules in life, and I promise you, things magically get easier. " - MageTank 31-10-2016

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

The true fix to this problem is that you start to put the name right after the line switch :

@givingtnt

but really you need to do the switch, then space, then the name :

 @givingtnt

~New~  BoomBerryPi project !  ~New~


new build log : http://linustechtips.com/main/topic/533392-build-log-the-scrap-simulator-x/?p=7078757 (5 screen flight sim for 620$ CAD)LTT Web Challenge is back ! go here  :  http://linustechtips.com/main/topic/448184-ltt-web-challenge-3-v21/#entry601004

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, WereCatf said:

Light theme makes you 20% cooler!

laughs nervously because mortis is soon here

Link to comment
Share on other sites

Link to post
Share on other sites

To everyone having this issue, can you open the dev tools prior to trying to tag people (F12, console tab), then try tagging people until it breaks. Hopefully, when it broke there was stuff logged to the dev tools. Copy all of that and paste it here (ideally, both Copy+Paste the text and paste a screenshot, to get the maximum info).

I've not been able to reproduce the issue since the last wave of editor fixes a long time ago.

8 hours ago, givingtnt said:

The true fix to this problem is that you start to put the name right after the line switch :

@givingtnt

but really you need to do the switch, then space, then the name :

 @givingtnt

Works fine for me

@givingtnt

 

Also, what browsers are you all running?

HTTP/2 203

Link to comment
Share on other sites

Link to post
Share on other sites

@colonel_mortis

 

Here's what I got:

 

Text

Spoiler
This is a browser feature intended for developers. Do not paste any code here given to you by someone else. It may compromise your account or have other negative side effects. root_library.js.a7ab53e221279575f283c625c080d7d1.js:15:824
(EMBED): Starting timeout... commonEmbedHandler.js:50:4
(EMBED): Called ready commonEmbedHandler.js:50:4
(EMBED): Called responsiveState commonEmbedHandler.js:50:4
Assertion failed: Input argument is not an HTMLInputElement onloadwff.js:71:850453
 

TypeError: l is undefined[Learn More] ckeditor.js:10:47

2

Screenshot:

Spoiler

firefox_KjcrL8B8o3.png.24b49121308c13f0bf6fe8f2914b3823.png

 

 

After the @Yep it didn't even let me type or hit enter for a new row.

Also, after I went to clear the editor to write this post, the page became a little laggy and, it wouldn't let me tag you until I hit refresh.

 

I'm using Firefox Version 65.0.2

Make sure to quote or tag people, so they get notified.

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Cyberspirit said:

@colonel_mortis

 

Here's what I got:

 

Text

  Hide contents
This is a browser feature intended for developers. Do not paste any code here given to you by someone else. It may compromise your account or have other negative side effects. root_library.js.a7ab53e221279575f283c625c080d7d1.js:15:824
(EMBED): Starting timeout... commonEmbedHandler.js:50:4
(EMBED): Called ready commonEmbedHandler.js:50:4
(EMBED): Called responsiveState commonEmbedHandler.js:50:4
Assertion failed: Input argument is not an HTMLInputElement onloadwff.js:71:850453
 

TypeError: l is undefined[Learn More] ckeditor.js:10:47

2

Screenshot:

  Hide contents

firefox_KjcrL8B8o3.png.24b49121308c13f0bf6fe8f2914b3823.png

 

 

After the @Yep it didn't even let me type or hit enter for a new row.

Also, after I went to clear the editor to write this post, the page became a little laggy and, it wouldn't let me tag you until I hit refresh.

 

I'm using Firefox Version 65.0.2

Does it still happen after you disable Grammarly (this I am especially suspicious of, because it's caused several issues in the past), uBlock and lastpass (easiest is ≡, help, restart with addons disabled)?

HTTP/2 203

Link to comment
Share on other sites

Link to post
Share on other sites

Seems to be working perfectly now no matter how I tag people.

Text:

Spoiler
This is a browser feature intended for developers. Do not paste any code here given to you by someone else. It may compromise your account or have other negative side effects. root_library.js.a7ab53e221279575f283c625c080d7d1.js:15:824
(EMBED): Starting timeout... commonEmbedHandler.js:50:4
(EMBED): Called ready commonEmbedHandler.js:50:4
(EMBED): Called responsiveState

 

Screenshot:

Spoiler

image.png.c1131b0f9868ae9256066597ea554399.png

 

Note: Seems like Firefox updated to Version 66.0 (64-bit) so, I'll double check with addons in a bit.

Make sure to quote or tag people, so they get notified.

Link to comment
Share on other sites

Link to post
Share on other sites

@colonel_mortis

 

Alright, did a test with the new Version with Grammarly and Ublock disabled and it broke the same way it did at first.

 

Text:

Spoiler
This is a browser feature intended for developers. Do not paste any code here given to you by someone else. It may compromise your account or have other negative side effects. root_library.js.a7ab53e221279575f283c625c080d7d1.js:15:824
(EMBED): Starting timeout... commonEmbedHandler.js:50:4
(EMBED): Called ready commonEmbedHandler.js:50:4
(EMBED): Called responsiveState commonEmbedHandler.js:50:4
Request to access cookie or storage on “https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png” was blocked because it came from a tracker and content blocking is enabled. 1046001-mentioning-multiple-people
Assertion failed: Input argument is not an HTMLInputElement onloadwff.js:71:850453
 

TypeError: l is undefined[Learn More] ckeditor.js:10:47

Screenshot:

Spoiler

firefox_6WffGxwp6O.png.8fb366427a821061162d5539d338ea23.png

 

Make sure to quote or tag people, so they get notified.

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, Cyberspirit said:

@colonel_mortis

 

Alright, did a test with the new Version with Grammarly and Ublock disabled and it broke the same way it did at first.

 

Text:

  Hide contents
This is a browser feature intended for developers. Do not paste any code here given to you by someone else. It may compromise your account or have other negative side effects. root_library.js.a7ab53e221279575f283c625c080d7d1.js:15:824
(EMBED): Starting timeout... commonEmbedHandler.js:50:4
(EMBED): Called ready commonEmbedHandler.js:50:4
(EMBED): Called responsiveState commonEmbedHandler.js:50:4
Request to access cookie or storage on “https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png” was blocked because it came from a tracker and content blocking is enabled. 1046001-mentioning-multiple-people
Assertion failed: Input argument is not an HTMLInputElement onloadwff.js:71:850453
 

TypeError: l is undefined[Learn More] ckeditor.js:10:47

Screenshot:

  Hide contents

firefox_6WffGxwp6O.png.8fb366427a821061162d5539d338ea23.png

 

So it consistently works when all addons are disabled, but still breaks when only uBlock and Grammarly are disabled? If so, that suggests that the issue lies with one of the others, possibly LastPass since it has generated an error (the Assertion failed error is from lastpass) though I use LastPass and can't reproduce the issue.

If you're confident that it wasn't a fluke when it worked with them all disabled, can you try disabling others to see which is conflicting?

HTTP/2 203

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, colonel_mortis said:

So it consistently works when all addons are disabled, but still breaks when only uBlock and Grammarly are disabled? If so, that suggests that the issue lies with one of the others, possibly LastPass since it has generated an error (the Assertion failed error is from lastpass) though I use LastPass and can't reproduce the issue.

If you're confident that it wasn't a fluke when it worked with them all disabled, can you try disabling others to see which is conflicting?

Yeah, I'll mess around with that tomorrow.

 

Also, should I delete the previously posted logs or, do they not contain anything special?

Make sure to quote or tag people, so they get notified.

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Cyberspirit said:

Yeah, I'll mess around with that tomorrow.

 

Also, should I delete the previously posted logs or, do they not contain anything special?

Aside from the obvious things that can be seen in the screenshots (bookmarks, tabs, extensions), you've not posted anything sensitive.

HTTP/2 203

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Cyberspirit said:

@colonel_mortis

 

Alright, did a test with the new Version with Grammarly and Ublock disabled and it broke the same way it did at first.

 

Text:

Screenshot:

 

I've had a look into the error that occurred. While I'm not quite sure how it is being triggered in this case (so an extension could still be responsible for it breaking stuff), I have found a bug in the editor which can break things. I've reported it to the developers of the editor, so it should be fixed in the next build of the editor. However, that fix is unlikely to make its way to this site for several months, at a minimum, because the next version has to be released, then get picked up by the forum software devs and included in an update from them. I don't know if it will fix the actual issue, or just make it give a different error.

 

To test whether this helps, open the dev console, paste the following code, then press enter

Spoiler

	CKEDITOR.event.prototype = ( function() {
		// Returns the private events object for a given object.
		var getPrivate = function( obj ) {
				var _ = ( obj.getPrivate && obj.getPrivate() ) || obj._ || ( obj._ = {} );
				return _.events || ( _.events = {} );
			};

		var eventEntry = function( eventName ) {
				this.name = eventName;
				this.listeners = [];
			};

		eventEntry.prototype = {
			// Get the listener index for a specified function.
			// Returns -1 if not found.
			getListenerIndex: function( listenerFunction ) {
				for ( var i = 0, listeners = this.listeners; i < listeners.length; i++ ) {
					if ( listeners[ i ].fn == listenerFunction )
						return i;
				}
				return -1;
			}
		};

		// Retrieve the event entry on the event host (create it if needed).
		function getEntry( name ) {
			// Get the event entry (create it if needed).
			var events = getPrivate( this );
			return events[ name ] || ( events[ name ] = new eventEntry( name ) );
		}

		return {
			define: function( name, meta ) {
				var entry = getEntry.call( this, name );
				CKEDITOR.tools.extend( entry, meta, true );
			},
			on: function( eventName, listenerFunction, scopeObj, listenerData, priority ) {
				var me = this;

				// Create the function to be fired for this listener.
				function listenerFirer( editor, publisherData, stopFn, cancelFn ) {
					var ev = {
						name: eventName,
						sender: this,
						editor: editor,
						data: publisherData,
						listenerData: listenerData,
						stop: stopFn,
						cancel: cancelFn,
						removeListener: removeListener
					};

					var ret = listenerFunction.call( scopeObj, ev );

					return ret === false ? false : ev.data;
				}

				function removeListener() {
					me.removeListener( eventName, listenerFunction );
				}

				var event = getEntry.call( this, eventName );

				if ( event.getListenerIndex( listenerFunction ) < 0 ) {
					// Get the listeners.
					var listeners = event.listeners;

					// Fill the scope.
					if ( !scopeObj )
						scopeObj = this;

					// Default the priority, if needed.
					if ( isNaN( priority ) )
						priority = 10;

					listenerFirer.fn = listenerFunction;
					listenerFirer.priority = priority;

					// Search for the right position for this new listener, based on its
					// priority.
					for ( var i = listeners.length - 1; i >= 0; i-- ) {
						// Find the item which should be before the new one.
						if ( listeners[ i ].priority <= priority ) {
							// Insert the listener in the array.
							listeners.splice( i + 1, 0, listenerFirer );
							return { removeListener: removeListener };
						}
					}

					// If no position has been found (or zero length), put it in
					// the front of list.
					listeners.unshift( listenerFirer );
				}

				return { removeListener: removeListener };
			},
			once: function() {
				var args = Array.prototype.slice.call( arguments ),
					fn = args[ 1 ];

				args[ 1 ] = function( evt ) {
					evt.removeListener();
					return fn.apply( this, arguments );
				};

				return this.on.apply( this, args );
			},
			capture: function() {
				CKEDITOR.event.useCapture = 1;
				var retval = this.on.apply( this, arguments );
				CKEDITOR.event.useCapture = 0;
				return retval;
			},
			fire: ( function() {
				// Create the function that marks the event as stopped.
				var stopped = 0;
				var stopEvent = function() {
						stopped = 1;
					};

				// Create the function that marks the event as canceled.
				var canceled = 0;
				var cancelEvent = function() {
						canceled = 1;
					};

				return function( eventName, data, editor ) {
					// Get the event entry.
					var event = getPrivate( this )[ eventName ];

					// Save the previous stopped and cancelled states. We may
					// be nesting fire() calls.
					var previousStopped = stopped,
						previousCancelled = canceled;

					// Reset the stopped and canceled flags.
					stopped = canceled = 0;

					if ( event ) {
						var listeners = event.listeners;

						if ( listeners.length ) {
							// As some listeners may remove themselves from the
							// event, the original array length is dinamic. So,
							// let's make a copy of all listeners, so we are
							// sure we'll call all of them.
							listeners = listeners.slice( 0 );

							var retData;
							// Loop through all listeners.
							for ( var i = 0; i < listeners.length; i++ ) {
								// Call the listener, passing the event data.
								if ( event.errorProof ) {
									try {
										retData = listeners[ i ].call( this, editor, data, stopEvent, cancelEvent );
									} catch ( er ) {}
								} else {
									retData = listeners[ i ].call( this, editor, data, stopEvent, cancelEvent );
								}

								if ( retData === false )
									canceled = 1;
								else if ( typeof retData != 'undefined' )
									data = retData;

								// No further calls is stopped or canceled.
								if ( stopped || canceled )
									break;
							}
						}
					}

					var ret = canceled ? false : ( typeof data == 'undefined' ? true : data );

					// Restore the previous stopped and canceled states.
					stopped = previousStopped;
					canceled = previousCancelled;

					return ret;
				};
			} )(),
			fireOnce: function( eventName, data, editor ) {
				var ret = this.fire( eventName, data, editor );
				delete getPrivate( this )[ eventName ];
				return ret;
			},
			removeListener: function( eventName, listenerFunction ) {
				// Get the event entry.
				var event = getPrivate( this )[ eventName ];

				if ( event ) {
					var index = event.getListenerIndex( listenerFunction );
					if ( index >= 0 )
						event.listeners.splice( index, 1 );
				}
			},
			removeAllListeners: function() {
				var events = getPrivate( this );
				for ( var i in events )
					delete events[ i ];
			},
			hasListeners: function( eventName ) {
				var event = getPrivate( this )[ eventName ];
				return ( event && event.listeners.length > 0 );
			}
		};
	} )();

 

In theory, you should no longer be able to reproduce the issue.

The fix will only work for that page load - refreshing the page or going to a different page will clear it, and you'll need to run the code again to reapply the fix. It also won't fix the editor if it's already broken - it has to be run before you start using the editor.

 

If you try this, please let me know if it works (especially if it still breaks, in which case please send the output of the console after that code as above, but I'm definitely interested in hearing when it works too).

HTTP/2 203

Link to comment
Share on other sites

Link to post
Share on other sites

Here is what i got, im on a slightly outdated version of chrome in this instance, i havent tried it on firefox yet as im fairly new to using it as my main browser.

 

Spoiler

image.png.28da411dc424626dd5854d99d0154991.png

 

Spoiler

This is a browser feature intended for developers. Do not paste any code here given to you by someone else. It may compromise your account or have other negative side effects.
commonEmbedHandler.js:50 (EMBED): Origin in loader is https://linustechtips.com
commonEmbedHandler.js:50 (EMBED): Starting timeout...
2commonEmbedHandler.js:50 (EMBED): Called ready
2commonEmbedHandler.js:50 (EMBED): Called responsiveState
apis.live.net/v5.0/e349d9f3427ee133/picture?type=large:1 Failed to load resource: the server responded with a status of 410 (Gone)
pbs.twimg.com/profile_images/771467274951720963/ovL9FuoO_normal.jpg:1 Failed to load resource: the server responded with a status of 404 ()
10/main/uploads/profile/photo-109755.jpg%3Foh=0b5bf48ded7718b771d44945c66433f1&oe=5483ccc1&__gda__=1419399981_7c4bb881844249f1a8014ab82e9651e8:1 Failed to load resource: the server responded with a status of 404 ()
ckeditor.js:10 Uncaught TypeError: Cannot read property 'removeListener' of undefined
    at Object.d [as removeListener] (ckeditor.js:10)
    at CKEDITOR.plugins.ipsmentions.closeResults (/main/applications/core/interface/ckeditor/ckeditor/plugins/ipsmentions/plugin.js?t=I8IM:11)
    at CKEDITOR.plugins.ipsmentions.selectMentionResult (/main/applications/core/interface/ckeditor/ckeditor/plugins/ipsmentions/plugin.js?t=I8IM:10)
    at HTMLLIElement.f (root_library.js.a7ab53e221279575f283c625c080d7d1.js:2)
    at HTMLLIElement.dispatch (root_library.js.a7ab53e221279575f283c625c080d7d1.js:2)
    at HTMLLIElement.r.handle (root_library.js.a7ab53e221279575f283c625c080d7d1.js:2)
43ckeditor.js:10 Uncaught TypeError: Cannot read property 'removeListener' of undefined
    at Object.d [as removeListener] (ckeditor.js:10)
    at CKEDITOR.plugins.ipsmentions.closeResults (/main/applications/core/interface/ckeditor/ckeditor/plugins/ipsmentions/plugin.js?t=I8IM:11)
    at CKEDITOR.plugins.ipsmentions.<anonymous> (/main/applications/core/interface/ckeditor/ckeditor/plugins/ipsmentions/plugin.js?t=I8IM:9)
    at ckeditor.js:26
commonEmbedHandler.js?v=109dcaa0f7:50 (EMBED): Called responsiveState

Its been a thing for quite a while but you can get more than enough now it seems, its not like when its broken after two or three before

I spent $2500 on building my PC and all i do with it is play no games atm & watch anime at 1080p(finally) watch YT and write essays...  nothing, it just sits there collecting dust...

Builds:

The Toaster Project! Northern Bee!

 

The original LAN PC build log! (Old, dead and replaced by The Toaster Project & 5.0)

Spoiler

"Here is some advice that might have gotten lost somewhere along the way in your life. 

 

#1. Treat others as you would like to be treated.

#2. It's best to keep your mouth shut; and appear to be stupid, rather than open it and remove all doubt.

#3. There is nothing "wrong" with being wrong. Learning from a mistake can be more valuable than not making one in the first place.

 

Follow these simple rules in life, and I promise you, things magically get easier. " - MageTank 31-10-2016

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

@colonel_mortis Tried the code but, it still broke the same way so, guess it is an issue with an addon.

 

Text:

Spoiler
This is a browser feature intended for developers. Do not paste any code here given to you by someone else. It may compromise your account or have other negative side effects. root_library.js.a7ab53e221279575f283c625c080d7d1.js:15:824
Request to access cookie or storage on “https://z-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&Operation=GetScript&ID=OneJS&WS=1” was blocked because it came from a tracker and content blocking is enabled. 1046001-mentioning-multiple-people
(EMBED): Starting timeout... commonEmbedHandler.js:50:4
(EMBED): Called ready commonEmbedHandler.js:50:4
(EMBED): Called responsiveState commonEmbedHandler.js:50:4
 
SyntaxError: unexpected token: identifier[Learn More] debugger eval code:11:6
Request to access cookie or storage on “https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png” was blocked because it came from a tracker and content blocking is enabled. 1046001-mentioning-multiple-people
Assertion failed: Input argument is not an HTMLInputElement onloadwff.js:71:850453
 

TypeError: l is undefined[Learn More]

 

TypeError: l is undefined[Learn More]

 

TypeError: l is undefined[Learn More] ckeditor.js:10:47

 

 

Screenshot:

Spoiler

firefox_dVWVsOs02c.png.ba25ec9fe5008c28147e87731ca07567.png

 

 

Make sure to quote or tag people, so they get notified.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Cyberspirit said:

@colonel_mortis Tried the code but, it still broke the same way so, guess it is an issue with an addon.

 

Text:

  Reveal hidden contents
 

 

Screenshot:

  Reveal hidden contents
 

 

Are you sure you pasted all of the code correctly? One of the errors that you got relates to the code that you pasted, which isn't meant to happen.

3 hours ago, Bananasplit_00 said:

Here is what i got, im on a slightly outdated version of chrome in this instance, i havent tried it on firefox yet as im fairly new to using it as my main browser.

 

  Reveal hidden contents

 

  Reveal hidden contents

Its been a thing for quite a while but you can get more than enough now it seems, its not like when its broken after two or three before

Can you also see whether the fix above works for you? https://linustechtips.com/main/topic/1046001-mentioning-multiple-people/?tab=comments#comment-12408770

 

HTTP/2 203

Link to comment
Share on other sites

Link to post
Share on other sites

@colonel_mortis I selected everything from the quote including spaces so, I'm not sure.

This is where I had to paste it, right? The console tab.

Spoiler

image.png.e3ceb4aa500c0beab1c7175496a48762.png

 

Make sure to quote or tag people, so they get notified.

Link to comment
Share on other sites

Link to post
Share on other sites

6 minutes ago, colonel_mortis said:

Are you sure you pasted all of the code correctly? One of the errors that you got relates to the code that you pasted, which isn't meant to happen.

Can you also see whether the fix above works for you? https://linustechtips.com/main/topic/1046001-mentioning-multiple-people/?tab=comments#comment-12408770

 

Tried pasteing that, after a while i started to get errors in the console again, 400 and 410 untill after a while i got a 404 error and it broke:

Spoiler

image.png.c42cd04f79ed7b3fdd1dcf5df4dfed9d.png

Also every time i press a key now it throws an error "uncaugt typeerror" at the bottom of the console in the picture but im guessing thats from the code i pasted

I spent $2500 on building my PC and all i do with it is play no games atm & watch anime at 1080p(finally) watch YT and write essays...  nothing, it just sits there collecting dust...

Builds:

The Toaster Project! Northern Bee!

 

The original LAN PC build log! (Old, dead and replaced by The Toaster Project & 5.0)

Spoiler

"Here is some advice that might have gotten lost somewhere along the way in your life. 

 

#1. Treat others as you would like to be treated.

#2. It's best to keep your mouth shut; and appear to be stupid, rather than open it and remove all doubt.

#3. There is nothing "wrong" with being wrong. Learning from a mistake can be more valuable than not making one in the first place.

 

Follow these simple rules in life, and I promise you, things magically get easier. " - MageTank 31-10-2016

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Cyberspirit said:

@colonel_mortis I selected everything from the quote including spaces so, I'm not sure.

This is where I had to paste it, right? The console tab.

  Hide contents

image.png.e3ceb4aa500c0beab1c7175496a48762.png

 

Yeah, that's right.

7 minutes ago, Bananasplit_00 said:

Tried pasteing that, after a while i started to get errors in the console again, 400 and 410 untill after a while i got a 404 error and it broke:

  Hide contents

image.png.c42cd04f79ed7b3fdd1dcf5df4dfed9d.png

Also every time i press a key now it throws an error "uncaugt typeerror" at the bottom of the console in the picture but im guessing thats from the code i pasted

The 400/410/404 errors aren't related to this (I'm not quite sure what they are related to, but they're just failing to load images on the page).

 

Can you both try this alternative code?


( function() {
		var getPrivate = function( obj ) {
				var _ = ( obj.getPrivate && obj.getPrivate() ) || obj._ || ( obj._ = {} );
				return _.events || ( _.events = {} );
			};
		var eventEntry = function( eventName ) {
				this.name = eventName;
				this.listeners = [];
			};
		eventEntry.prototype = {
			getListenerIndex: function( listenerFunction ) {
				for ( var i = 0, listeners = this.listeners; i < listeners.length; i++ ) {
					if ( listeners[ i ].fn == listenerFunction )
						return i;
				}
				return -1;
			}
		};
		function getEntry( name ) {
			var events = getPrivate( this );
			return events[ name ] || ( events[ name ] = new eventEntry( name ) );
		}
		Object.assign( CKEDITOR.event.prototype, {
			define: function( name, meta ) {
				var entry = getEntry.call( this, name );
				CKEDITOR.tools.extend( entry, meta, true );
			},
			on: function( eventName, listenerFunction, scopeObj, listenerData, priority ) {
				var me = this;
				function listenerFirer( editor, publisherData, stopFn, cancelFn ) {
					var ev = {
						name: eventName,
						sender: this,
						editor: editor,
						data: publisherData,
						listenerData: listenerData,
						stop: stopFn,
						cancel: cancelFn,
						removeListener: removeListener
					};

					var ret = listenerFunction.call( scopeObj, ev );

					return ret === false ? false : ev.data;
				}
				function removeListener() {
					me.removeListener( eventName, listenerFunction );
				}
				var event = getEntry.call( this, eventName );
				if ( event.getListenerIndex( listenerFunction ) < 0 ) {
					// Get the listeners.
					var listeners = event.listeners;
					// Fill the scope.
					if ( !scopeObj )
						scopeObj = this;
					// Default the priority, if needed.
					if ( isNaN( priority ) )
						priority = 10;
					listenerFirer.fn = listenerFunction;
					listenerFirer.priority = priority;
					// Search for the right position for this new listener, based on its
					// priority.
					for ( var i = listeners.length - 1; i >= 0; i-- ) {
						// Find the item which should be before the new one.
						if ( listeners[ i ].priority <= priority ) {
							// Insert the listener in the array.
							listeners.splice( i + 1, 0, listenerFirer );
							return { removeListener: removeListener };
						}
					}
					// If no position has been found (or zero length), put it in
					// the front of list.
					listeners.unshift( listenerFirer );
				}
				return { removeListener: removeListener };
			},
			once: function() {
				var args = Array.prototype.slice.call( arguments ),
					fn = args[ 1 ];
				args[ 1 ] = function( evt ) {
					evt.removeListener();
					return fn.apply( this, arguments );
				};
				return this.on.apply( this, args );
			},
			capture: function() {
				CKEDITOR.event.useCapture = 1;
				var retval = this.on.apply( this, arguments );
				CKEDITOR.event.useCapture = 0;
				return retval;
			},
			fire: ( function() {
				// Create the function that marks the event as stopped.
				var stopped = 0;
				var stopEvent = function() {
						stopped = 1;
					};
				// Create the function that marks the event as canceled.
				var canceled = 0;
				var cancelEvent = function() {
						canceled = 1;
					};
				return function( eventName, data, editor ) {
					// Get the event entry.
					var event = getPrivate( this )[ eventName ];
					// Save the previous stopped and cancelled states. We may
					// be nesting fire() calls.
					var previousStopped = stopped,
						previousCancelled = canceled;
					// Reset the stopped and canceled flags.
					stopped = canceled = 0;
					if ( event ) {
						var listeners = event.listeners;
						if ( listeners.length ) {
							// As some listeners may remove themselves from the
							// event, the original array length is dinamic. So,
							// let's make a copy of all listeners, so we are
							// sure we'll call all of them.
							listeners = listeners.slice( 0 );
							var retData;
							// Loop through all listeners.
							for ( var i = 0; i < listeners.length; i++ ) {
								// Call the listener, passing the event data.
								if ( event.errorProof ) {
									try {
										retData = listeners[ i ].call( this, editor, data, stopEvent, cancelEvent );
									} catch ( er ) {}
								} else {
									retData = listeners[ i ].call( this, editor, data, stopEvent, cancelEvent );
								}
								if ( retData === false )
									canceled = 1;
								else if ( typeof retData != 'undefined' )
									data = retData;
								// No further calls is stopped or canceled.
								if ( stopped || canceled )
									break;
							}
						}
					}
					var ret = canceled ? false : ( typeof data == 'undefined' ? true : data );
					// Restore the previous stopped and canceled states.
					stopped = previousStopped;
					canceled = previousCancelled;
					return ret;
				};
			} )(),
			fireOnce: function( eventName, data, editor ) {
				var ret = this.fire( eventName, data, editor );
				delete getPrivate( this )[ eventName ];
				return ret;
			},
			removeListener: function( eventName, listenerFunction ) {
				// Get the event entry.
				var event = getPrivate( this )[ eventName ];
				if ( event ) {
					var index = event.getListenerIndex( listenerFunction );
					if ( index >= 0 )
						event.listeners.splice( index, 1 );
				}
			},
			removeAllListeners: function() {
				var events = getPrivate( this );
				for ( var i in events )
					delete events[ i ];
			},
			hasListeners: function( eventName ) {
				var event = getPrivate( this )[ eventName ];
				return ( event && event.listeners.length > 0 );
			}
		} );
	} )();

The same stuff about only working after you run it etc applies.

HTTP/2 203

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×