搜尋 Mozilla 技術支援網站

防止技術支援詐騙。我們絕對不會要求您撥打電話或發送簡訊,或是提供個人資訊。請用「回報濫用」功能回報可疑的行為。

Learn More

Google Sheets - using + or * signs don't move the cursor, so previous cell address is overwritten in the formula

more options

[Added an attachment to simplify the explanation]

Suppose that I want to write the formula A1+A2 (or A1*A2). If I click A1 and then use the '+' sign. The sign it appears right after the cursor, so the cursor it's now between the A1 and the '+' sign, and the A1 text in the formula remains -I would say- selected as if nothing was written. So whatever I write or click afterwards overwrites the A1 cell reference making it impossible to write a formula.

I'm in Win10 with Firefox v69.0, both latest versions in English with a Spanish Intl. keyboard and layout. Checked in a couple of spreadsheets including a blank one.

Things that I have already tried:

- Disabled all add-ons on all tests

- Tried doing the same on Chrome, Opera, Edge (edgeHTML), Safari and FF for Mac. Only happens in FF both Mac and Win.

- It only happens when the previous cell was introduced using the mouse or the arrow keys, not if it was written.

- Only happens when using the '+' (or '*') from the regular keyboard, not the one from the numerical keypad.

- Switched to Spanish Windows and Firefox. Doesn't work either.

- Tested old Firefox versions, including, ESR.

- Changed the keyboard layout. With some of them it works (US, UK, US_Intl, FR, PL programmers) and with others doesn't (ES, DE, IT, FI and serbian). Moreover, few of them (FR and FI) works for one sign (+ or *) but not for the other.

Any ideas? Thanks

[Added an attachment to simplify the explanation] Suppose that I want to write the formula A1+A2 (or A1*A2). If I click A1 and then use the '+' sign. The sign it appears right after the cursor, so the cursor it's now between the A1 and the '+' sign, and the A1 text in the formula remains -I would say- selected as if nothing was written. So whatever I write or click afterwards overwrites the A1 cell reference making it impossible to write a formula. I'm in Win10 with Firefox v69.0, both latest versions in English with a Spanish Intl. keyboard and layout. Checked in a couple of spreadsheets including a blank one. Things that I have already tried: - Disabled all add-ons on all tests - Tried doing the same on Chrome, Opera, Edge (edgeHTML), Safari and FF for Mac. Only happens in FF both Mac and Win. - It only happens when the previous cell was introduced using the mouse or the arrow keys, not if it was written. - Only happens when using the '+' (or '*') from the regular keyboard, not the one from the numerical keypad. - Switched to Spanish Windows and Firefox. Doesn't work either. - Tested old Firefox versions, including, ESR. - Changed the keyboard layout. With some of them it works (US, UK, US_Intl, FR, PL programmers) and with others doesn't (ES, DE, IT, FI and serbian). Moreover, few of them (FR and FI) works for one sign (+ or *) but not for the other. Any ideas? Thanks
附加的畫面擷圖

由 Coriscow 於 修改

所有回覆 (15)

more options

Are you talking about Firefox, or a spreadsheet program?

more options

Hi Fred, thanks for answering. I'm referring to a problem with Google Sheets that only happens in Firefox.

I opened a thread in google's support. But after trying on different computers, browsers, FF versions, languages, physical keyboards and layouts (it seems it may be related to that) only happens on Firefox.

Thanks

more options

I called for more help.

Is there anything you can add other than what you already posted?

When do you think the problem started? What Firefox version?

more options

Hi Coriscow,

I can't reproduce your issue in my machine (I'm on MacOS Mojave, Firefox 69), so I doubt that it has something to do with Firefox. Did you try to reproduce it from another Google account?

more options

Hi!

Fred I'm using v69.0.1, updated this very morning (but it still happens). About whed did it start, I'm not fully sure because I've been using Chrome for a couple of years. In the recent months I've moved back to FF and I didn't realize about this until last week. I didn't use Sheets a lot though. However, I've tried also in older FF versions such as 68.0.2, 59.0.3, 39, 60.9 ESR. None of them worked.

Kiki, thanks for answering. I have just tried with a brand new google account and still happens. Did you try with a spanish keyboard layout? Because, from my previous tests, it works right with some layouts (US, UK, US_Intl, FR, PL programmers)

If you need any other information about my system, config or tests I have already done I'm willing to provide it.

Thanks!

由 Coriscow 於 修改

more options

Hey Coriscow!

Thanks for all your diligent testing to try to find out when this bug first broke & by checking a lot of our past versions! I was going to suggest that so I'm happy you already did it on your own. :D

That leads me to believe it's a weird issue originating from Google Sheets but in a way that Firefox doesn't like or can't understand. We used to have a lot of weird issues with Google Docs for example. To the point we believed Google was actively sabotaging the GDocs experience for Firefox users, just so people would switch to Google's Chrome to use GDocs instead.

In this case, I can't say that's what's happening for sure. Especially since it works ok in EN-US. But I just wanted to bring up the past weirdness of Google's web products on browsers other than their own. Hopefully this won't be too hard to fix or compensate for on our end.

I was going to file a bug for you but wanted to see if you could describe your issue a bit better. I got all of the detail & the animated GIF of the problem which is awesome & highly appreciated! I'll attempt to explain if I understand your issue correctly & you can correct me if I've missed something in my attempt to summarize your issue better. ;)

The weird GSheets Cell overwriting issue: • Write a formula in a cell (A1+A2 or A1*A2) • Make sure the '+' is from the regular keyboard NOT numberpad/numerical keypad • Blinking cursor then stays in front of the '+' instead of behind it • Any action (clicking or typing in sheet) after this, erases the entire cell

Specific requirements to trigger bug: • Depends on the keyboard layout. I use a Spanish (ES) keyboard layout. Works fine with US, UK, US_Intl, FR, PL programmers keyboard layouts. Doesn't work with ES, DE, IT, FI and Serbian. Moreover, few of them (FR and FI) works for one sign (+ or *) but not for the other. • Only happens when the previous cell was introduced using the mouse or the arrow keys, not if it was written. • Only happens when using the '+' or '*' from the regular keyboard, NOT the ones from the numerical keypad.

Notes of importance: • Tested issue in all non-Firefox browsers on both Win & Mac. All worked. Detailed test list: Tested on Chrome, Opera, Edge (edgeHTML), Safari and FF for Mac. Only happens in FF both Mac and Win. • Tested against older FF versions such as 68.0.2, 59.0.3, 39, 60.9 ESR. All had the same issue/bug. • All Add-ons were disabled.

Do I have all that right? :P

Did you also create a new, fresh Firefox profile for these tests? Don't do them all over again if you haven't. But you could just create one new profile & do a few of the tests again. You can then check *about:profiles or about:support (Profile Folder line) to see which profile is in use. If you get the same results, the rest of your findings should still hold true.

  • *You will see a message that says: "This is the profile in use and it cannot be deleted."

But I won't lie that the specific requirements to trigger this bug will make it tricky to fix. But I think the saving grace is this problem stems from using certain locale keyboard layouts. This gives me hope the problem can be isolated to something in that code & fix it for all affected locales. :)

由 NoahSUMO 於 修改

more options

Hi Noah,

First of all I apologize for not answering sooner but I was hiking in the mountains. Awesome landscapes those of the Tyrol, totally recommended.

Yeah, I'm pretty sure Google has something to do about it. I specifically tested v39 and the ESR because I recall using this versions in a previous job and never found this issue. Now it happens also with those.

As for the profile suggestion (thanks, i didn't think about that), I have just tried with a new profile (win+ latest FF) in a new google account and it isn't working.

All info you gathered is correct except that "Any action (clicking or typing in sheet) after this, erases the entire cell". It does not erase the whole cell content but the cell reference introduced previously (using the mouse or arrows) that was...so to say 'selected'. For instance, if I try to write this formula =MAX(23; C14+C15) I end up with this one =MAX(23; C15)+. That's because I write the first part, then click on C14 to add it to the formula, then '+' (the cursor stays between C14 and '+' while C14 is selected), then click on C15 (that overwrites the C14 reference writing C15 in its place) then close the bracket (that goes before the '+' because the cursor is still there). I can make another gif with this latter example. So, please, tell me if I didn't explain that clearly enough.

Two other things I would like to point out: first I used portable FF of all previous versions (didn't want to uninstall the latest one). And second, I'm using physical Spanish keyboards (both the laptop's and an external Logitech). In my tests I changed the layout in the OS. Maybe changing a EN keyboard to ES layout can replicate the issue.

Thanks

more options

Google Sheets is heavily scripted: in order to create the grid display, each keyboard and mouse input sent to the page must be evaluated and implemented by script. Google's scripts are very difficult to read, so it might not be possible for outsiders to debug exactly why most characters are placed after the insertion point but some are placed before it. Or to put that differently, why the insertion point is correctly positioned after a new character most of the time, but sometimes isn't.

One thing I might suggest is to inject a keystroke listener script to report whether Firefox and other browsers might use different key codes/values for the affected keys on your keyboard (for example, by logging certain event parameters to the console). Maybe I can write one tonight.

more options

Hi jscher,

I thout about this possibility too and, although I do not have that deep knowledge, I run also some tests using keycode.info. Maybe this test is useless but I got the following results with the different layouts I tried. And although shift key seems to play a role with the '+' char, it doesn't with '*' so nothing conclusive

https://docs.google.com/spreadsheets/d/1Vim88q5AEpcbZ-OT7ur0vjR0jhim8FLIE3PZz0_S-9o/edit?usp=sharing

more options

Hi Coriscow, this is very interesting. I think that site is trying to be helpful by interpreting certain keys, but it's a little confusing (right bracket??). Maybe you could test on a different page:

https://www.jeffersonscher.com/res/keyvents.html

With a U.S. English keyboard, when I press 8 unshifted, and then 8 shifted (for *) I get this in Firefox, Edge and Chrome (apologies for the messiness, it wasn't designed for pasting):

keydown => event.key: "8" {charCode: 0; keyCode: 56; which: 56} keypress => event.key: "8" {charCode: 56; keyCode: 56; which: 56} keyup => event.key: "8" {charCode: 0; keyCode: 56; which: 56}

keydown => event.key: "*" + Shift {charCode: 0; keyCode: 56; which: 56} keypress => event.key: "*" + Shift {charCode: 42; keyCode: 42; which: 42} keyup => event.key: "*" + Shift {charCode: 0; keyCode: 56; which: 56}

Do you get different results on keyboards you use for 8 or Shift+8?

My results for = and Shift+= (plus) look different in different browsers for keydown and keyup:

Edge and Chrome

keydown => event.key: "=" {charCode: 0; keyCode: 187; which: 187} keypress => event.key: "=" {charCode: 61; keyCode: 61; which: 61} keyup => event.key: "=" {charCode: 0; keyCode: 187; which: 187}

keydown => event.key: "+" + Shift {charCode: 0; keyCode: 187; which: 187} keypress => event.key: "+" + Shift {charCode: 43; keyCode: 43; which: 43} keyup => event.key: "+" + Shift {charCode: 0; keyCode: 187; which: 187}

Firefox

keydown => event.key: "=" {charCode: 0; keyCode: 61; which: 61} keypress => event.key: "=" {charCode: 61; keyCode: 61; which: 61} keyup => event.key: "=" {charCode: 0; keyCode: 61; which: 61}

keydown => event.key: "+" + Shift {charCode: 0; keyCode: 61; which: 61} keypress => event.key: "+" + Shift {charCode: 43; keyCode: 43; which: 43} keyup => event.key: "+" + Shift {charCode: 0; keyCode: 61; which: 61}

I don't know what is causing 187 vs. 61 on the same keyboard.

Do you get different results on keyboards you use for = and Shift+= (plus)?

more options

Hi Jscher,

These are the results

8, shift+8, =, shift+= on a US layout keydown => event.key: "8"{charCode: 0; keyCode: 56; which: 56} keypress => event.key: "8"{charCode: 56; keyCode: 56; which: 56} keyup => event.key: "8"{charCode: 0; keyCode: 56; which: 56}

keydown => event.key: "*" + Shift{charCode: 0; keyCode: 56; which: 56} keypress => event.key: "*" + Shift{charCode: 42; keyCode: 42; which: 42} keyup => event.key: "*" + Shift{charCode: 0; keyCode: 56; which: 56}

keydown => event.key: "="{charCode: 0; keyCode: 61; which: 61} keypress => event.key: "="{charCode: 61; keyCode: 61; which: 61} keyup => event.key: "="{charCode: 0; keyCode: 61; which: 61}

keydown => event.key: "+" + Shift{charCode: 0; keyCode: 61; which: 61} keypress => event.key: "+" + Shift{charCode: 43; keyCode: 43; which: 43} keyup => event.key: "+" + Shift{charCode: 0; keyCode: 61; which: 61}


0, shift+0 (eq. to =), +, shift++ (eq.to *) on a ES layout keydown => event.key: "0"{charCode: 0; keyCode: 48; which: 48} keypress => event.key: "0"{charCode: 48; keyCode: 48; which: 48} keyup => event.key: "0"{charCode: 0; keyCode: 48; which: 48}

keydown => event.key: "=" + Shift{charCode: 0; keyCode: 48; which: 48} keypress => event.key: "=" + Shift{charCode: 61; keyCode: 61; which: 61} keyup => event.key: "=" + Shift{charCode: 0; keyCode: 48; which: 48}

keydown => event.key: "+"{charCode: 0; keyCode: 171; which: 171} keypress => event.key: "+"{charCode: 43; keyCode: 43; which: 43} keyup => event.key: "+"{charCode: 0; keyCode: 171; which: 171}

keydown => event.key: "*" + Shift{charCode: 0; keyCode: 171; which: 171} keypress => event.key: "*" + Shift{charCode: 42; keyCode: 42; which: 42} keyup => event.key: "*" + Shift{charCode: 0; keyCode: 171; which: 171}


same physical keys as in first test but on a ES layout probably useless because it delivers spanish chars keydown => event.key: "8"{charCode: 0; keyCode: 56; which: 56} keypress => event.key: "8"{charCode: 56; keyCode: 56; which: 56} keyup => event.key: "8"{charCode: 0; keyCode: 56; which: 56}

keydown => event.key: "(" + Shift{charCode: 0; keyCode: 56; which: 56} keypress => event.key: "(" + Shift{charCode: 40; keyCode: 40; which: 40} keyup => event.key: "(" + Shift{charCode: 0; keyCode: 56; which: 56}

keydown => event.key: "¡"{charCode: 0; keyCode: 221; which: 221} keypress => event.key: "¡"{charCode: 161; keyCode: 161; which: 161} keyup => event.key: "¡"{charCode: 0; keyCode: 221; which: 221}

keydown => event.key: "¿" + Shift{charCode: 0; keyCode: 221; which: 221} keypress => event.key: "¿" + Shift{charCode: 191; keyCode: 191; which: 191} keyup => event.key: "¿" + Shift{charCode: 0; keyCode: 221; which: 221}

As far as I can tell the keydown and keyup events refer to physical keys whereas keypress returns the key meaning in the configurad layout.

regards

more options

something went wrong with the link to the ES layout that I included. Here it is in plain

https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/KB_Spanish.svg/800px-KB_Spanish.svg.png

more options

Hi Coriscow, thank you for testing that, and the keyboard diagram.

The character part is working fine, but we still have the mystery of the cursor position. When I type a right bracket, nothing unusual happens. However, that has a different key code; I don't know how to test what might happen if I were to press "key 171" in Google Sheets because it doesn't seem to exist on my U.S. English keyboard.

As an aside, my display is a bit different when typing a formula, there is a little gray thing that seems to show where the cursor is:

<center></center>

But back to the problem: I don't know what might be an effective workaround because I don't understand why Sheets is behaving that way. In theory, you could inject a script to throw away the keydown and keyup events for that specific key and see whether that makes any difference. I don't have such a script handy, but might be able to come up with one tonight.

more options

Hi Jscher, looking forward to test it, thanks!

more options

Sorry for the delay in reporting back. I tried to come up with some scripts that might modify how keys work and the result was mostly that nothing got entered. However, if the problem is that Google "backspaces" after entering the character, perhaps this might work. As a test, you could inject it into the page using the Web Console:

You can open the Web Console in the lower part of the tab using either:

  • "3-bar" menu button > Web Developer > Web Console
  • (menu bar) Tools > Web Developer > Web Console
  • (Windows) Ctrl+Shift+k

Then paste the following script next to the blue >> and press Enter to run it:

document.body.addEventListener('keyup', function(evt){if(evt.keyCode==48 || evt.keyCode==171){console.log('blocking keyup for '+evt.keyCode); evt.stopPropagation(); evt.preventDefault();}}, false);

The first time you do this, Firefox should ask you to take an action to prove you understand it can be dangerous to run scripts from strangers. (It's true!)

Anyway, once the event listener is set, test whether it makes any difference in typing + or * (or not).

Note: this is only good until the page is reloaded.