It might seem odd that I’m posting a bug with Yomichan on the WaniKani forums, but this bug only happens on these forums. When you use Yomichan to lookup a Japanese word on the page, it shows a little popover (image below). Normally clicking out of the box closes the popover, but this does not work on the WaniKani forums.
Additionally, the bug doesn’t even happen on other discourse forums, such as https://discourse.mozilla.org. I tested there by typing the japanese text in the search box and the issue does not occur (doing it this way does cause the bug on the WK forums too, just like using it in a forum post).
I believe this has been happening for less than a month, so maybe the WK team updated the forums recently or changed some configuration.
Hmm, it’s unclear if the bug is in the WK or Yomichan (I’ve experienced this behavior on other sites), but after some debugging, I can see there’s an event listener that’s being attached but never called. Some other event listeners are working, which is weird. Like if you resize the window, the popover disappears. And the mousemove listener is working, but not correctly (I think). Feeling too lazy to keep digging into this, but if anyone else cares to help, this is a good place to start looking: yomichan/frontend.js at e5905dd732d4ffd0915ae27cb3b0c84256482443 · FooSoft/yomichan · GitHub
edit:
OK, I couldn’t help myself. It does seem like there’s some other js running on the page preventing new listeners from being added…? If I open up the console and enter window.addEventListener('mousedown', () => { console.log('woo'); }); and then click around, I don’t see anything. But if you visit any other page and do the same, you’ll see ‘woo’ printed every time you click.
edit2: If you attach the mousedown event to document instead, it works fine. Pausing the code running, grabbing the handler, saving a reference, then attaching it to document myself fixes the bug. Obviously, that’s not a solution. But, it does raise the question for Yomichan if perhaps using document instead for attaching the mouse events.
Do you want to write up a bug with these details on his github page? I would, but between you seeing it on other sites and digging into the code you can provide much more detail than I could. If your suggested change is easy and reasonable, Yomichan might as well handle it. But it also seems like bad practice for websites to prevent new listeners from being added, so I feel like WaniKani/Discourse should fix it on this side too.
Yeah, I’d be happy to. You’re right, though, that there must be something WK-side that should be fixed, too. Hopefully these details will help them narrow it down a bit.
I do know we’ve added a couple JS code on top of the default Discourse build, but that was back when we migrated to Discourse.
One thing to note are we are on a hosted platform directly with Discourse. They like to push out the latest builds (beta…) to their hosted boards. They’ve just released their latest version, 1.9. I would review if the boards you are comparing against ours are on the same version. This information is available in the meta tags.
I’ll take a peek at our JS addons and see if there is something…
They both say 1.9.0.beta17, but as you can see they are different commits. Mozilla’s version’s commit is from 4 days ago. WaniKani’s version’s commit is from 7 days ago. If this is a discourse bug then perhaps they already fixed the issue and the update just needs to be pushed to these forums. I don’t see any commit messages mentioning anything about this bug though, so who knows.
One of the JS snippets we include is just an .on('click') on a very specific class. The other is an event listener from the Discourse API api.onPageChange((url, title); the action we added is scoped to a specific class (within PMs. We just inject the HTML which displays the PM warning).
Are you by chance running any WK Community specific scripts?
I’ve installed Yomichan from the Google extension site on Google Chrome 63.0.3239.132 (OS X) with the english JM Dict dictionary imported. Using the shift key and hovering over the text on WK Community I get the popover. Clicking outside the popover or hitting escape (without clicking the popover to focus) exits the popover. Is this the expected behavior?
The expected behavior is that clicking outside the popover or pressing escape closes the popover. I think the extension auto-focuses on the popover for escape to work, but that’s probably not relevant.
From what you described it sounds like it’s working for you. I’ll have to try it again tomorrow to see if it’s still reproducible.
I was able to replicate it. On all Discourse boards.
The condition is you need to be logged into the boards. Have you logged into the Mozilla boards and tried the Yomichan?
It worked for me before because I wasn’t logged into the forums when I was troubleshooting on Chrome. Logging into an account on here, Mozilla, and meta.discourse.org all exhibit the issues you described.
Based on this, this isn’t a specific community.wanikani.com issue; its either Yomichan or Discourse.
I haven’t done much low level troubleshooting, but I did noticed Discourse “Quote” feature appears when using Yomichan while logged in (not present as logged out user). Looks like Yomichan is highlighting the text, which activates Quote. I wonder if there is some conflict between the two?
Okay. Well I’ve opened an issue on Yomichan’s github for now. Hopefully something can be done on their side. If not, I may have to file an issue with Discourse.