And that is why I shouldn't have bought a "gaming" mouse...
-
@cheong said in And that is why I shouldn't have bought a "gaming" mouse...:
So no, anything, but "not support Ch
orme for web" is not a WTF for me.FTFY
-
@adie said in And that is why I shouldn't have bought a "gaming" mouse...:
Zmaster, which Razer mouse do you have?
I wanted to get Razer Death Adder Elite ( https://mirillis.com/blog/en/top-5-best-gaming-mice-to-buy-2017-ranking/ ) for my Partner, i thought Razer is a good company, and therefore their mice don't break up so easily...I've gone through several Nagas. Pretty much the only thing that ever broke was the mouse wheel, but it broke (stopped scrolling correctly) on every single one within the warranty period. Not the current one, yet.
ETA:
Oh yeah, and if you want to customize the keybindings (easy enough to do in the driver app, which actually works right unlike the abomination in the OP) you'll need to keep in mind that it's now (and for a few years back) "cloud-based", meaning it won't remember them unless you have an internet connection sometime between booting the computer and needing the function, leaving you with only the default mouse button meanings otherwise.
-
@cheong said in And that is why I shouldn't have bought a "gaming" mouse...:
if (ctrl.text != null) {
return ctrl.text;
} else {
return ctrl.value;
}return ctrl.value || ctrl.text || "";
?I've never heard of
.text
before. My Chrome shows that asundefined
.
-
I have decided to poke around to confirm my suspicions about why it doesn't work. I was right. They are trying to set the height of the
iframe
from the parent page by invoking a function that's defined in the child page that gets loaded in theiframe
. Which WebKit balks at.In this case, I'd say I agree with it. And I'm pretty sure the spec says that's what should happen.
Filed under: Frames securely mediate, by design
-
@cheong said in And that is why I shouldn't have bought a "gaming" mouse...:
Some Chrome update last year decided we should use .value instead, which is fine. However, they also make .text return "" instead of null, hence breaks all backward compatibility code people using because we can't tell between it's "this weird behavior" or just an empty textarea.
I would expect
undefined
, notnull
. Maybe you're misremembering and it was actuallytextContent
orinnerText
? Those would return something, and both of them return""
in the most recent versions of Firefox and Chrome.The proper thing to do would be to try getting
value
first, and if that isn't present (I can't imagine which browser wouldn't have it) then fall back to whatever that browser lets you use.
-
@dreikin said in And that is why I shouldn't have bought a "gaming" mouse...:
Oh yeah, and if you want to customize the keybindings (easy enough to do in the driver app, which actually works right unlike the abomination in the OP) you'll need to keep in mind that it's now (and for a few years back) "cloud-based", meaning it won't remember them unless you have an internet connection sometime between booting the computer and needing the function
Oh, COME ON. Seriously?!
-
@onyx said in And that is why I shouldn't have bought a "gaming" mouse...:
I have decided to poke around to confirm my suspicions about why it doesn't work. I was right. They are trying to set the height of the
iframe
from the parent page by invoking a function that's defined in the child page that gets loaded in theiframe
. Which WebKit balks at.That should work, as long as the outer page and the page inside the iframe are on the same host. Most likely the way they're trying to refer to the function in the iframe's child page broke; it should work if they use
iframe.contentWindow.childFunction()
.(Note that this doesn't work in Chrome when both the parent and child pages are stored locally -- i.e. the
file:
protocol -- in order to prevent scripts in an.html
file from targeting some other file on your hard drive and reading its contents.)It's an ugly hack to try to get a seamless iframe, though. Really, they should just compose the page on the server so they don't have an iframe there... or use a slightly less ugly hack: load it with AJAX and push it into a
div
or aspan
so that its height gets set automatically.
-
@anotherusername said in And that is why I shouldn't have bought a "gaming" mouse...:
Really, they should just compose the page on the server so they don't have an iframe there...
Don't worry, they tried. Can't find it any more but I did see some broken templating going on somewhere on the site while clicking through with something like
[/body]
rendering as plaintext instead of being caught by whatever they are using. I never saw that syntax though, so it's either something homebrew or someone messed up the syntax while writing it (no, I don't think that was supposed to be</body>
because I'm sure at least one of those I saw was not a valid HTML tag name).
-
@anotherusername Yup. The code was actually using .val() and .text(). I've forgotten to replace the .text part.
The proper thing to do would be to try getting
value
first, and if that isn't present (I can't imagine which browser wouldn't have it) then fall back to whatever that browser lets you use.Older browser use .innerText or .innerHTML to retrieve textarea value, because it store with syntax like the content of "a" tag. Therefore in the backward compatibility code it's tested first.
-
@anotherusername said in And that is why I shouldn't have bought a "gaming" mouse...:
as long as the outer page and the page inside the iframe are on the same
hostoriginAlso asynchrony can open a whole other can of worms.
-
@cheong said in And that is why I shouldn't have bought a "gaming" mouse...:
@anotherusername Yup. The code was actually using .val() and .text(). I've forgotten to replace the .text part.
The proper thing to do would be to try getting
value
first, and if that isn't present (I can't imagine which browser wouldn't have it) then fall back to whatever that browser lets you use.Older browser use .innerText or .innerHTML to retrieve textarea value, because it store with syntax like the content of "a" tag. Therefore in the backward compatibility code it's tested first.
Feature checking should try the current standardized method first, and if that fails, fall back to older methods for compatibility. Trying the older method first and failing forward relies on new browsers maintaining some consistent failure mode for the older method, and there's no guarantee of that, as you found.
So if
value
isn't present (i.e. is undefined), then you should fall back to the other way. Note that you really shouldn't just use||
for this check, because you specifically need to verify thatvalue
is undefined (not just an empty string). While you could writetextArea.value || textArea.innerHTML
...and I think that it'd work, the proper way to do this would really be
textArea.value !== undefined ? textArea.value : textArea.innerHTML
@zecc said in And that is why I shouldn't have bought a "gaming" mouse...:
@anotherusername said in And that is why I shouldn't have bought a "gaming" mouse...:
as long as the outer page and the page inside the iframe are on the same
hostoriginAlso asynchrony can open a whole other can of worms.
allowed, but in practical terms it's usually synonymous. You're potentially going to run into problems if you have part of your site on HTTP and part on HTTPS, or if you're using multiple port numbers, but both of those are . You're going to have issues if you have subdomains, but that should be resolved by setting the proper headers so that the browser understands that the different origins trust each other.
And if you're having problems with synchronizing scripts in an outer page with scripts in an iframe then I think you're most definitely somehow (and you should probably be using web workers instead, or
postMessage
/onmessage
). Anything more complex than that basic example, where the outer page calls a function in the iframe and that function does something and then gives back a return value, is probably .
-
@heterodox said in And that is why I shouldn't have bought a "gaming" mouse...:
@dreikin said in And that is why I shouldn't have bought a "gaming" mouse...:
Oh yeah, and if you want to customize the keybindings (easy enough to do in the driver app, which actually works right unlike the abomination in the OP) you'll need to keep in mind that it's now (and for a few years back) "cloud-based", meaning it won't remember them unless you have an internet connection sometime between booting the computer and needing the function
Oh, COME ON. Seriously?!
Yeah, I remember a little snafu where the cloud provider oopsed a major portion of their database and many users lost their bindings.
-
@heterodox said in And that is why I shouldn't have bought a "gaming" mouse...:
@dreikin said in And that is why I shouldn't have bought a "gaming" mouse...:
Oh yeah, and if you want to customize the keybindings (easy enough to do in the driver app, which actually works right unlike the abomination in the OP) you'll need to keep in mind that it's now (and for a few years back) "cloud-based", meaning it won't remember them unless you have an internet connection sometime between booting the computer and needing the function
Oh, COME ON. Seriously?!
It looks like it might not be quite so bad anymore:
Does Razer Synapse require an internet connection to function?
Razer Synapse only requires an internet connection for initial setup and installation of the latest drivers; online and offline modes are optional. In online mode, Razer Synapse will save and sync user settings to the cloud in real time whenever there is an active internet connection. In offline mode, user settings are stored on the computer. Switching from offline to online mode will automatically save and sync user settings to the cloud; providing a seamless user experience.I'd need to test to be sure it solves the problem I mentioned though (it seems entirely possible to me that it won't - computer turning off in online mode, then booting without a network connection resulting in no memory of settings).
-
@dreikin Yeah, that's how it read to me. Seems like the best use pattern is to get the mouse set up just the way you want it, put it in online mode if necessary (though I expect it's the default), then put it into offline mode to write them to your computer. Toggle between modes after every time you change the settings. Unless you don't care about the cloud sync at all, of course, and then you can just leave it in offline mode.
But dollars to peanuts the default config is cloud-only sync and the first time the user tries to use it when they have an internet outage will be annoying. (Bonus points if their offline config then overwrites the cloud one when the internet outage is resolved, because it's newer.)
-
@zecc said in And that is why I shouldn't have bought a "gaming" mouse...:
@anotherusername said in And that is why I shouldn't have bought a "gaming" mouse...:
as long as the outer page and the page inside the iframe are on the same
hostoriginAlso asynchrony can open a whole other can of worms.
More likely a can of wyrms, but yes.
-
@steve_the_cynic said in And that is why I shouldn't have bought a "gaming" mouse...:
More likely a can of wyrms, but yes.
That'd be a mighty big can.
-
@dreikin said in And that is why I shouldn't have bought a "gaming" mouse...:
you'll need to keep in mind that it's now (and for a few years back) "cloud-based", meaning it won't remember them unless you have an internet connection sometime between booting the computer and needing the function, leaving you with only the default mouse button meanings otherwise.
Why the fuck would any company do this, hosting this shit costs them money and what do they gain? I guess it forces people to install their spyware?
-
@bb36e said in And that is why I shouldn't have bought a "gaming" mouse...:
@dreikin said in And that is why I shouldn't have bought a "gaming" mouse...:
you'll need to keep in mind that it's now (and for a few years back) "cloud-based", meaning it won't remember them unless you have an internet connection sometime between booting the computer and needing the function, leaving you with only the default mouse button meanings otherwise.
Why the fuck would any company do this, hosting this shit costs them money and what do they gain? I guess it forces people to install their spyware?
It's useful for keeping the same settings across machines, including in case of sudden machine death. I'm guessing the offline is because of nobody thinking about it beforehand, and then tacking it on as an afterthought.
-
@weng said in And that is why I shouldn't have bought a "gaming" mouse...:
@gąska Ya rly. My Microsoft Wheel Mouse Optical from approximately 1972 literally has holes worn in the bottom from abrading on the desk.
Of course, you can't get that one anymore. It was superceded by something with a less pleasing shape.
I was ticked when I found out that they were discontinued. Mine still work, but since I've managed to abrade the textured surface down to a gloss and have several years of gunk on them, I wanted to buy some new ones (for home and office). Only to find out that's not an option.
No idea what I'll do when they die. Install Linux so I can do everything with keyboard shortcuts, I suspect...
@blek said in And that is why I shouldn't have bought a "gaming" mouse...:
@onyx Why don't you buy a keyboard blessed by the lord and savior of civilized ?
Say what you will about , I actually like my (104-key) CODE keyboard a lot. I got one at work to replace my rubber dome Unicomp (which was nowhere near as nice as the buckling spring one I have at home), but I'm actually thinking about getting a second one for home too.
-
@unperverted-vixen Was that your first mechanical keyboard? I don't have a CODE but generally I don't think it has anything to do with . Switch from a membrane keyboard to a mechanical one with good switches is really awesome, and it doesn't really matter whether it's the CODE, Das Keyboard or something else.
Someone even made a documentary about it:
-
@blek My first was a real Model M w/buckling springs, followed by a Unicomp one with USB (for use at home, so my coworkers didn't beat me to death with it). The CODE keyboard was my first "modern" mechanical keyboard, though.
-
God not this fucking keyboard shit again.
-
@blakeyrat said in And that is why I shouldn't have bought a "gaming" mouse...:
God not this fucking keyboard shit again.
-
@blakeyrat you didn't have to come into this topic, and it was a fair bet that a topic that literally starts with 'gaming mouse' in the subject is probably going to turn into a discussion on keyboards at some point not too far away, and be about mechanical keyboards.
-
@slackerd said in And that is why I shouldn't have bought a "gaming" mouse...:
@blakeyrat said in And that is why I shouldn't have bought a "gaming" mouse...:
God not this fucking keyboard shit again.
I had forgotten precisely how ass pre-1.9 combat was. Christ.
-
@onyx said in And that is why I shouldn't have bought a "gaming" mouse...:
Speak for your country, it's the second most used tool here. Right after WD-40.
If it moves and it shouldn't, use electrical tape. If it doesn't move and it should, use WD-40
Anyway, it's a big friggin logo, would need a great gob of tape.
-
@jakjawagon said in And that is why I shouldn't have bought a "gaming" mouse...:
I don't get the hate for Razer mice. I've had a Naga Hex for about 5 years, and only in the last couple of months the right button has gone a bit wonky. It could probably be fixed with a good clean, but if not, I've got my eye on either the Patriot Viper V570 or the newer Naga Hex.
I have a cheap Dell mouse and whenever it stops working perfectly, one of two things fixes it:
- Blowing the hair or fuzz off of the red light (I'm pretty sure it's not a laser) and optical sensor.
- (Much more rarely) Turning the mouse sideways and shaking it up and down and watching flakes of gunk fall out. (They look like pencil shavings but I'm pretty sure they're entirely made of the same stuff that dust is made of.)
-
@boomzilla said in And that is why I shouldn't have bought a "gaming" mouse...:
@onyx said in And that is why I shouldn't have bought a "gaming" mouse...:
Speak for your country, it's the second most used tool here. Right after WD-40.
If it moves and it shouldn't, use electrical tape. If it doesn't move and it should, use WD-40
Anyway, it's a big friggin logo, would need a great gob of tape.
-
-
@ben_lubar said in And that is why I shouldn't have bought a "gaming" mouse...:
I'm pretty sure it's not a laser
It's not. Marketing just calls it that.
-
@tsaukpaetra said in And that is why I shouldn't have bought a "gaming" mouse...:
@ben_lubar said in And that is why I shouldn't have bought a "gaming" mouse...:
I'm pretty sure it's not a laser
It's not. Marketing just calls it that.
I've seen a laser mouse, but the laser was blue, not red. You could pick it up like a foot above the desk and it would still work normally - not that it would ever make sense to do that on purpose.
-